Mysql
 sql >> Base de données >  >> RDS >> Mysql

MYSQL utilise 'LIKE' dans la clause 'WHERE' pour rechercher dans la sous-requête

Utilisation d'un JOIN :

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

... mais il pourrait y avoir des doublons, s'il y a plus d'une correspondance dans myothertable pour un mytable donné enregistrer.

Utiliser EXISTE :

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

Utilisation de Recherche en texte intégral MATCH (nécessite myothertable est MyISAM)

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