sql >> Base de Datos >  >> RDS >> Mysql

MYSQL usa 'LIKE' en la cláusula 'WHERE' para buscar en la subconsulta

Usando un ÚNETE:

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

...pero podría haber duplicados, si hay más de una coincidencia en myothertable para un mytable dado grabar.

Usando EXISTE:

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

Usando Búsqueda de texto completo MATCH (requiere myothertable es MiISAM)

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