sql >> Database teknologi >  >> RDS >> Mysql

mysql vælg på listen med regexp/substring

Dette er en JOIN-operation med en ubehagelig væmmelig unsargable langsom ON tilstand.

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

Det er langsomt, fordi 'needle' LIKE '%haystack%' betyder, at MySQL skal se på alt i høstakken for at finde nålen.

På den anden side, 'needle' LIKE 'haystack%' (uden den indledende % ) kan bruge et indeks. Så hvis dette virker i dine data, bør du bruge det.

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


  1. Fejlfinding af Microsoft SQL Server-fejl 18456

  2. MySQL:vælg sidste hele 5 minutters interval

  3. Sådan indstilles det aktuelle sprog i SQL Server (T-SQL)

  4. MySQL primære nøgler