sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvorfor fungerer det anderledes med ~~ any()?

Problemet er, at resultatet af din underforespørgsel tolkes som en streng, ikke en matrix. Dette skyldes, at disse to former er semantisk forskellige:

~~ ANY ('...')  -- will be interpreted as an array literal

og

~~ ANY (SELECT ...)  -- will compare with all query results in turn

Så du kan bare skrive:

WHERE lower(name) ~~ ANY
      (SELECT DISTINCT '%' || lower(brand) || '%'
       FROM my_table
       WHERE source = 'Orig')



  1. Databasearkitektur for millioner af nye rækker om dagen

  2. Hvordan opretter man en database med UTF-8-sortering i PostgreSQL på Windows?

  3. MySQL DROP VIEW

  4. sql-forespørgsel for at søge og erstatte tekst i alle rækker