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

comodin en SELECT MYSQL

Estas en el tema de comodin en SELECT MYSQL en el foro de Bases de Datos General en Foros del Web. Hola a Tod@s: Me podrian decir que simbolo se utiliza como comodin para una instruccion SELECT con un WHERE. ejemplo: SELECT * FROM marca WHERE ...
  #1 (permalink)  
Antiguo 25/11/2004, 07:49
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 22 años, 10 meses
Puntos: 0
Pregunta comodin en SELECT MYSQL

Hola a Tod@s:
Me podrian decir que simbolo se utiliza como comodin para una instruccion SELECT con un WHERE.
ejemplo:
SELECT * FROM marca WHERE id_modelo ="%" and modelo = 3
Creo que para texto es "%" pero ¿cual es si es numerico?
Muchas gracias
Saludos
__________________
Hay tanto que aprender y tan poco tiempo
  #2 (permalink)  
Antiguo 25/11/2004, 08:10
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 21 años, 4 meses
Puntos: 0
ok

Cita:
Iniciado por Torus
Hola a Tod@s:
Me podrian decir que simbolo se utiliza como comodin para una instruccion SELECT con un WHERE.
ejemplo:
SELECT * FROM marca WHERE id_modelo ="%" and modelo = 3
Creo que para texto es "%" pero ¿cual es si es numerico?
Muchas gracias
Saludos
si quieres valores aproximados prueba con

SELECT * FROM marca WHERE id_model = '$id_modelo' AND modelo = '%$variable%'

si quieres valores exactos

SELECT * FROM marca WHERE id_model = '$id_modelo' AND modelo = '$variable'
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #3 (permalink)  
Antiguo 25/11/2004, 09:08
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 22 años, 10 meses
Puntos: 0
Gracias por responder andinistas.
El tema es que las variables pueden o no venir del formulario vacias y tengo un solo select, si la variable viene vacia y es texto tendria que poner %$variable% ¿no?.
Pero tengo datos que son numericos y con eso no "traga" y pensé que igual se utiliza otro simbolo para los numericos tipo "*".
Otra vez gracias
Un saludo
__________________
Hay tanto que aprender y tan poco tiempo
  #4 (permalink)  
Antiguo 25/11/2004, 17:44
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 23 años
Puntos: 655
Supongo que estas usando PHP, trata usando la función gettype de la variable. De esa forma te vas a poder dar cuenta si es integer, double, string, array, object, unknown type.

Si el resultado es igual a "integer" o "double" no le pones los comodines pero si te da como resultado "string", le agregas lo comodines.

Código PHP:
$variable "hola";
if (
gettype($variable) == "string" {
  
$variable "%".$variable."%";} 
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #5 (permalink)  
Antiguo 23/04/2006, 02:33
 
Fecha de Ingreso: septiembre-2005
Mensajes: 25
Antigüedad: 19 años, 2 meses
Puntos: 0
nadie le ha respondido aun, y justo tengo la misma duda.

% = comodin para cualkier caracter o caracteres
_ = comodin para 1 caracter cualkiera

XXX = comodin para uno o varios caracteres NUMERICOS, usease del 0 al 9

existe este tal XXX? o para ver un resultado de una consulta que empiece por un numero obligatoriamente tendriamos que hacer CAMPO LIKE ="1$cadena" AND CAMPO LIKE = "2$cadena".. etc

saludos! y muchas gracias por adelantado
  #6 (permalink)  
Antiguo 24/04/2006, 06:09
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 18 años, 7 meses
Puntos: 2
Cita:
Iniciado por phanatick
XXX = comodin para uno o varios caracteres NUMERICOS, usease del 0 al 9

existe este tal XXX? o para ver un resultado de una consulta que empiece por un numero obligatoriamente tendriamos que hacer CAMPO LIKE ="1$cadena" AND CAMPO LIKE = "2$cadena".. etc
En ese caso deberías utilizar expresiones regulares. Para tu ejemplo sería algo así:

SELECT * FROM tabla WHERE campo REGEXP '^[0-9]*cadena$'

Esa consulta va a verificar que el valor de campo sea una cadena que comienza con cualquier cantidad de dígitos del 0 al 9 y termine con la palabra "cadena".
Saludos.
  #7 (permalink)  
Antiguo 24/04/2006, 08:13
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 22 años, 10 meses
Puntos: 0
Os agradezco a todos vuestra ayuda.
La verdad es que sigo igual que al principio, y me explico:
Como ha dicho BrujoNic
Cita:
Código PHP:
variable "hola"
if (
gettype($variable) == "string" 
  
$variable "%".$variable."%";} 
Esto esta bien para saber si es una cadena, pero ¿que tengo que poner en el caso que no sea una cadena?
ejemplo sobre lo dicho por BrujoNic
Código PHP:
variable 1234
if (
gettype($variable) == "double" 
  
$variable = ????????????;

de la forma original no funciona, es decir $variable = "%".$variable."%";

Reitero mi gratitud por vuestros esfuerzos
Un cordial Saludo
__________________
Hay tanto que aprender y tan poco tiempo
  #8 (permalink)  
Antiguo 24/04/2006, 08:40
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 18 años, 7 meses
Puntos: 2
Cita:
Iniciado por Torus
de la forma original no funciona, es decir $variable = "%".$variable."%";
Cuando utilizás busquedas por coincidencia de patrones (utilizando % y _) no se utiliza el = o el <> para realizar la comparación, sino LIKE y NOT LIKE. En tu consulta original seria, por ejemplo:

SELECT * FROM marca WHERE id_modelo LIKE '%1'

Esa consulta va a seleccionar todas las filas cuyo campo id_modelo termine en 1. No importa el tipo del campo, (puede ser int, char, etc) la forma de realizar la comparacion es la misma se utiliza % para cualquier cantidad de caracteres y _ para sólo un caracter.
Saludos.
  #9 (permalink)  
Antiguo 24/04/2006, 08:51
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 23 años
Puntos: 655
Si vas a hacer SELECT con números, tendrías que utilizar mayor, menor, igual, mayor igual, menor igual o exactamente igual.

Por lo menos así lo he usado yo. Cuando son palabras o frases lo que estas buscando, si podes utilizar los comodines junto con LIKE ya que buscarías alguna palabra en algún texto, sin importar la posición al poner % al inicio y al final. Pero en el caso de números, es a como te lo expuse arriba, SIN %.

Saludos.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #10 (permalink)  
Antiguo 24/04/2006, 09:00
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 18 años, 7 meses
Puntos: 2
Cita:
Iniciado por BrujoNic
Si vas a hacer SELECT con números, tendrías que utilizar mayor, menor, igual, mayor igual, menor igual o exactamente igual.

Por lo menos así lo he usado yo. Cuando son palabras o frases lo que estas buscando, si podes utilizar los comodines junto con LIKE ya que buscarías alguna palabra en algún texto, sin importar la posición al poner % al inicio y al final. Pero en el caso de números, es a como te lo expuse arriba, SIN %.

Saludos.
Creo que lo más normal es comparar numeros mediante las operaciones de comparación, pero también, si uno quiere, puede utilizar las coincidencias de patrones. Quizá su utilidad no sea tan clara si sólo nos limitamos a utilizar % y _ , pero con expresiones regulares se pueden realizar comparaciones mucho más complejas que quizá si tengan sentido.
Saludos.
  #11 (permalink)  
Antiguo 05/05/2006, 03:52
 
Fecha de Ingreso: septiembre-2005
Mensajes: 25
Antigüedad: 19 años, 2 meses
Puntos: 0
Cita:
Iniciado por Notwen
En ese caso deberías utilizar expresiones regulares. Para tu ejemplo sería algo así:

SELECT * FROM tabla WHERE campo REGEXP '^[0-9]*cadena$'

Esa consulta va a verificar que el valor de campo sea una cadena que comienza con cualquier cantidad de dígitos del 0 al 9 y termine con la palabra "cadena".
Saludos.

Exactamente esto es lo que YO buscaba, muchas gracias notwen, eres un fiera!

Saludos!
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 23:40.