sql >> Database >  >> RDS >> Mysql

mysql selecteer in lijst met regexp/substring

Dit is een JOIN-bewerking met een vervelende vervelende onsargable traag ON staat.

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

Het is traag omdat 'needle' LIKE '%haystack%' betekent dat MySQL naar alles in de hooiberg moet kijken om de speld te vinden.

Aan de andere kant, 'needle' LIKE 'haystack%' (zonder de leidende % ) kan gebruik een index. Dus als dit werkt in uw gegevens, moet u het gebruiken.

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


  1. Hoe de laatste 6 maanden uit de nieuwstabel te selecteren met MySQL

  2. Kan Arabisch niet opslaan in MYSQL-database met behulp van PHP

  3. PHP - Maak de sleutel van de array van mijn query de ID

  4. E-mail verzenden vanaf een trigger in SQL Server (T-SQL)