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

mysql select en la lista con regexp/substring

Esta es una operación JOIN con un desagradable desagradable lentitud indescifrable ON condición.

SELECT B.description
  FROM A
  JOIN B ON B.description LIKE CONCAT('%', A.code, '%')

Es lento porque 'needle' LIKE '%haystack%' significa que MySQL tiene que mirar todo en el pajar para encontrar la aguja.

Por otro lado, 'needle' LIKE 'haystack%' (sin el % inicial ) puede utiliza un índice. Entonces, si esto funciona en sus datos, debe usarlo.

SELECT B.description
  FROM A
  JOIN B ON B.description LIKE CONCAT('FAX', A.code, '%')