SELECT stuff REGEXP 'iTunes' as is_iTunes;
Dans cette requête MySQL, si "stuff" contient le mot "iTunes", il le marquera comme iTunes.
Cependant, je veux dire "commencer par". Comment puis-je vérifier "commence par" au lieu de n'importe où dans le texte?
SELECT ... WHERE stuff LIKE 'iTunes%';
Ici %
sert de caractère générique, ce qui correspondrait aux lignes avec le champ stuff
égal à l'un des iTunes
, itunesfoo
, iTunes1
, ...
Plus d'informations: SQL LIKE Operator at W3Schools .
Ajoutez le symbole caret, il représente le début de la chaîne:
SELECT stuff REGEXP '^iTunes' as is_iTunes;
Toutefois, LIKE 'iTunes%'
comme suggéré par Marc devrait être beaucoup plus rapide, surtout si vos index sont correctement configurés.
Pour un champ indexé, il est préférable de faire:
select ... where stuff >='iTunes' AND stuff < 'itunet'
Cela ne crée pas une analyse complète de la table et n'utilise pas l'index.
SELECT ... WHERE LEFT(stuff, 6) = 'iTunes';
SELECT ... WHERE stuff REGEXP '[[:<:]]iTunes';