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%';
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é.
Si vous pouvez utiliser LIKE au lieu de REGEXP, utilisez LIKE
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.