Mysql
 sql >> база данни >  >> RDS >> Mysql

mysql изберете в списък с regexp/substring

Това е операция JOIN с гадно гадно неразбираемо бавно ON състояние.

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

Бавно е, защото 'needle' LIKE '%haystack%' означава, че MySQL трябва да разгледа всичко в купата сено, за да намери иглата.

От друга страна, 'needle' LIKE 'haystack%' (без водещия % ) може използвайте индекс. Така че, ако това работи във вашите данни, трябва да го използвате.

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Присъединете се към 4 таблици в SQL заявка

  2. Няма избрана база данни - PHP и MySQL

  3. Предупреждение:Предоставен е невалиден аргумент за foreach() в

  4. Във Flask-migrate ValueError:невалиден синтаксис на интерполация в низ за връзка на позиция 15

  5. Вътрешна грешка на Django 500 на сървъра - неправилно конфигурирана:Грешка при зареждане на модула MySQLdb: