Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MYSQL usa 'LIKE' na cláusula 'WHERE' para pesquisar na subconsulta


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

...mas pode haver duplicatas, se houver mais de uma correspondência em myothertable para uma determinada mytable registro.

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

Usando Pesquisa de texto completo MATCH (requer myothertable é MyISAM)
SELECT a.*
  FROM mytable a
  JOIN myothertable b ON MATCH(a.name) AGAINST (b.name)