2011-03-09 6 views
21

En el siguiente SQL:¿Cómo hacer coincidir un carácter en MySQL en lugar de%?

select * from X where Y like "%s"; 

el '%' coincidirá con cualquier carácter ante un s. El % puede haber x, xx, xrf, etc.

¿Hay algún símbolo que sólo igualará un carácter, como:

select * from X where Y like "?s" 

donde ? coincidirá con sólo un personaje como 'a', 'b ',' c ', etc.?

+0

¿Alguna palabra que aparezca 'a' solo una vez? –

Respuesta

34

Desea utilizar un carácter de subrayado (_). Consulte la documentación here.

15

_ coincidirá exactamente un carácter:

select * from X where Y like "_s" 
6

Una manera fácil puede hacerlo si se conoce el dominio de caracteres al partido:

select * from X where Y like '[a-z]s' 

o como esto

select * from X where Y like '[a-zA-Z0-9]s' 

alternativamente puede usar la sintaxis _ (guión bajo) de la siguiente manera:

select * from X where Y like '_s' 
+2

El uso de '[a-z]' no parece funcionar con 'LIKE', supongo que solo funciona para' REGEXP' – sharp12345

Cuestiones relacionadas