Quiero obtener todos los autos que terminan con a, c, d or f Puedo obtener una lista de autos que terminan haciendo esto:

select model 
from cars 
where model like "a%";

Pero quiero una lista de los modelos que terminen no solo con a, sino también con los otros caracteres anteriores:

He intentado hacer esto (que no devuelve la lista correcta):

select model 
from cars 
where model like "%a"
or model like "%c"
or model like "%d"
or model like "%f";

Este también es un intento / solución muy feo. Imagina si necesitara más modelos.

Estoy usando mysql

Gracias por cualquier ayuda

0
user1960836 26 oct. 2017 a las 21:48

3 respuestas

La mejor respuesta

Puedes usar regexp:

where model regexp '[acdf]$'
3
Gordon Linoff 26 oct. 2017 a las 18:51

Usar expresión regular para consultar $ significa el final de String y ^ significa el comienzo

select model 
from cars 
where model REGEXP "(a|c|d|f)$";

Si querías esos personajes al principio, entonces podrías haber escrito:

select model 
from cars 
where model REGEXP "^(a|c|d|f)";
1
Ritwik Bhar 26 oct. 2017 a las 19:03
select model 
from cars
where substring(model, -1) IN ('a','c','d','f')
1
morgb 26 oct. 2017 a las 18:52