Mysql
 sql >> Database >  >> RDS >> Mysql

MYSQL usa "LIKE" nella clausola "WHERE" per cercare nella sottoquery

Usando un JIN:

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

...ma potrebbero esserci dei duplicati, se c'è più di una corrispondenza in myothertable per un dato mytable registrare.

Utilizzando EXISTS:

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

Utilizzo di Ricerca di testo completo MATCH (richiede myothertable è MyISAM)

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