2012-03-07 12 views
30

Tengo un problema al usar el comodín % con una consulta MySQL.MySQL comienza con la búsqueda del problema

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

Después de leer este artículo, estoy usando % y no conseguir exactamente lo que estaba esperando.

tengo una serie de valores, tales como

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

incluyendo

11_1 
11_2 

Ahora, en algunos casos Quiero volver específicamente aquellos cuyo valor = 11_2, o 1_2 etc. Estos trabajos bien

WHERE fieldName = '11_2' 

etc ... como se esperaba

Sin embargo, en algunos casos, quiero encontrar todos los artículos que comienzan con un 1 o todos los elementos que comienzan con 11

Desde el enlace w3schools, esperaba

WHERE fieldName LIKE '1_%' 

encontrar algo que comienza con 1_ específicamente, por lo tanto, en mi ejemplo, volviendo:

1_1 
1_2 

Pero, también regresa

11_1 
11_2 

¿Por qué es esto? ¿Y cómo puedo superarlo?

Respuesta

58

Underscore es un comodín para un solo carácter. Usted tendrá que cambiar su SQL a algo como:

WHERE fieldName LIKE '1%' 

O puede escapar el subrayado

WHERE fieldName LIKE '1\_%' 
Cuestiones relacionadas