sql >> Databasteknik >  >> RDS >> Mysql

MYSQL använder 'LIKE' i 'WHERE'-satsen för att söka i underfrågan

Använda en JOIN:

SELECT a.*
  FROM mytable a
  JOIN myothertable b ON a.name LIKE CONCAT('%', b.name, '%')

...men det kan finnas dubbletter om det finns mer än en matchning i myothertable för en given mytable spela in.

Använder EXISTS:

SELECT a.*
  FROM mytable a
 WHERE EXISTS (SELECT NULL 
                 FROM myothertable b 
                WHERE a.name LIKE CONCAT('%', b.name, '%'))

Använda Fulltextsökning MATCH (kräver myothertable är MyISAM)

SELECT a.*
  FROM mytable a
  JOIN myothertable b ON MATCH(a.name) AGAINST (b.name)


  1. Hur lägger man till AUTO_INCREMENT i en befintlig kolumn?

  2. PHP-fel:Maximal funktionskapslingsnivå på '100' har uppnåtts, avbryts

  3. SQL Server v.Next:STRING_AGG() prestanda

  4. mysql räknar inte rad två gånger om kolumndata dupliceras