web-dev-qa-db-fra.com

MySQL commence par un problème de recherche

Je rencontre un problème avec le % caractère générique avec une requête MySQL.

http://www.w3schools.com/sql/sql_like.asp

Après avoir lu cet article, j'utilise % et pas tout à fait ce que j'attendais.

J'ai une série de valeurs, telles que

1_1
1_2
2_1
2_2... etc

comprenant

11_1
11_2

Maintenant, dans certains cas, je veux retourner spécifiquement ceux dont la valeur = 11_2, ou 1_2 etc. Cela fonctionne bien

WHERE fieldName = '11_2'

etc ... comme prévu

Cependant, dans certains cas, je souhaite trouver tous les éléments commençant par 1 ou tous les éléments commençant par 11

Du lien w3Schools, je m'attendais à

WHERE fieldName LIKE '1_%'

Pour trouver tout ce qui commence par 1_ spécifiquement, donc, dans mon exemple, en retournant:

1_1
1_2

MAIS, il revient aussi

11_1
11_2

Pourquoi est-ce? Et comment puis-je le surmonter?

33
Jamie Hartnoll

Underscore est un caractère générique pour un seul personnage. Vous devrez changer votre SQL en quelque chose comme:

WHERE fieldName LIKE '1%'

Ou vous pouvez échapper au trait de soulignement

WHERE fieldName LIKE '1\_%' 
70
markblandford