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

mysql selecione na lista com regexp/substring


Esta é uma operação JOIN com um desagradável desagradável lentidão insargável ON doença.
SELECT B.description
  FROM A
  JOIN B ON B.description LIKE CONCAT('%', A.code, '%')

É lento porque 'needle' LIKE '%haystack%' significa que o MySQL tem que olhar tudo no palheiro para encontrar a agulha.

Por outro lado, 'needle' LIKE 'haystack%' (sem o % principal ) pode usar um índice. Portanto, se isso funcionar em seus dados, você deve usá-lo.
SELECT B.description
  FROM A
  JOIN B ON B.description LIKE CONCAT('FAX', A.code, '%')