2012-03-07 5 views
30

Sto riscontrando un problema utilizzando il carattere jolly % con una query MySQL.MySQL inizia con il problema di ricerca

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

Dopo aver letto l'articolo, io sto usando % e non sempre del tutto quello che mi aspettavo.

ho una serie di valori, come ad esempio

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

compreso

11_1 
11_2 

Ora, in alcuni casi, voglio tornare in particolare quelle il cui valore = 11_2, o 1_2 ecc questo funziona fine

WHERE fieldName = '11_2' 

ecc ... come previsto

Tuttavia, in alcuni casi, vorrei trovare tutte le voci che iniziano con un 1 o tutti gli elementi che iniziano con 11

Dal link W3Schools, mi aspettavo

WHERE fieldName LIKE '1_%' 

a trovare nulla che inizia con 1_ specifico, quindi, nel mio esempio, il ritorno:

1_1 
1_2 

mA, restituisce anche

11_1 
11_2 

Perché è questo? E come posso finirlo?

risposta

58

Underscore è un carattere jolly per un singolo carattere. Avrete bisogno di cambiare il vostro SQL a qualcosa di simile:

WHERE fieldName LIKE '1%' 

Oppure si può sfuggire alla sottolineatura

WHERE fieldName LIKE '1\_%'