sql >> Databáze >  >> RDS >> Mysql

mysql vyberte v seznamu pomocí regulárního výrazu/podřetězce

Toto je operace JOIN s ošklivým ohavným, nestřídavě pomalým ON podmínka.

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

Je to pomalé, protože 'needle' LIKE '%haystack%' znamená, že MySQL se musí podívat na všechno v kupce sena, aby našla jehlu.

Na druhou stranu 'needle' LIKE 'haystack%' (bez úvodního % ) může použít index. Takže pokud to ve vašich datech funguje, měli byste to použít.

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


  1. Bring Your Own Cloud (BYOC) vs. Dedikovaný hosting na ScaleGrid

  2. Sloučit tabulku na jednom ze 2 sloupců v pandách

  3. TCL příkazy v SQL

  4. Konfigurace databáze MySQL v samostatné třídě