Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Comodines en Mysql

Estas en el tema de Comodines en Mysql en el foro de Mysql en Foros del Web. Hola, estoy intentando hacer una consulta sobre una tabla llamada empresas, donde quiero que me muestren todos los cif. Hay cif y dni mezclados, pero ...
  #1 (permalink)  
Antiguo 09/02/2010, 10:58
 
Fecha de Ingreso: octubre-2009
Mensajes: 11
Antigüedad: 15 años
Puntos: 0
Comodines en Mysql

Hola, estoy intentando hacer una consulta sobre una tabla llamada empresas, donde quiero que me muestren todos los cif. Hay cif y dni mezclados, pero quiero que me muestren los que empiecen por una letra y seguido de numeros.

como podria hacerlo?


gracias
  #2 (permalink)  
Antiguo 09/02/2010, 11:07
Avatar de maturano  
Fecha de Ingreso: enero-2010
Ubicación: /home/
Mensajes: 537
Antigüedad: 14 años, 10 meses
Puntos: 36
Respuesta: Comodines en Mysql

Cita:
Iniciado por javisd Ver Mensaje
Hay cif y dni mezclados
¿Y eso qué son?, ¿tipos de datos o literalmente el texto "cif" y "dni"?

Cita:
Iniciado por javisd Ver Mensaje
pero quiero que me muestren los que empiecen por una letra y seguido de numeros.
¿Estamos en el caso donde el operador LIKE no te sirve?, ¿buscas emplear expresiones regulares en tu búsqueda?; si esto es así, tienes el operador REGEX

http://dev.mysql.com/doc/refman/5.5/en/regexp.html

Por ejemplo, un texto que comience con una letra cualquiera seguida de cualquier cantidad de números, sería así:
Código MySQL:
Ver original
  1. SELECT campos FROM taba WHERE campo REGEX '^[[:alpha::]]{1}[[:digit:]]*$'
__________________
I ♥ The Music!
  #3 (permalink)  
Antiguo 09/02/2010, 11:11
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Comodines en Mysql

Usa expresiones regulares como esta:
SELECT campo FROM tabla WHERE campo REGEXP '^[A-Z]{1}[0-9]+$' = 1

Mejor la recomendada por maturano, pero añade en la consulta el = 1

Perdón: no es necesario añadir = 1, y tampoco sé si el añadido mejora la consulta en rapidez. Cambia sí el * por {8}, pues te encontraría también A sin números detrás, y el cif consta de una vocal y 8 dígitos.
La de maturano así:

Código MySQL:
Ver original
  1. SELECT campos FROM taba WHERE campo REGEX '^[[:alpha::]]{1}[[:digit:]]{8}$'

Última edición por jurena; 09/02/2010 a las 15:10

Etiquetas: comodines
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:36.