web-dev-qa-db-fra.com

MySQL | REGEXP VS J'aime

J'ai une table CANDIDATE dans ma base de données qui s'exécute sous MySQL 5.5 et j'essaie d'obtenir les lignes de la table où RAM est contenu dans le nom, de sorte que je puisse exécuter ci-dessous deux requêtes, mais j'aimerais maintenant quelle requête nous devrions utiliser à long terme en ce qui concerne l'optimisation. 

SELECT * FROM CANDIDATE c WHERE firstname REGEXP 'ram';
SELECT * FROM CANDIDATE c WHERE firstname LIKE'%ram%';
20
Vardan Gupta

REGEXP et LIKE sont utilisés dans des cas totalement différents.

LIKE est utilisé pour ajouter des caractères génériques à une chaîne alors que REGEXP est utilisé pour faire correspondre un attribut avec des expressions régulières. 

Dans votre cas, il est plus probable que firstname soit apparié avec LIKE que REGEXP et, par conséquent, il sera plus optimisé.

8
draxxxeus

Si vous pouvez utiliser LIKE au lieu de REGEXP, utilisez LIKE

5

Meilleure utilisation de LIKE Query au lieu de REGEXP si vous n'êtes pas sûr de la valeur. 

LIKE est également beaucoup plus rapide que REGEXP. 

1
Rahul