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

La consulta distingue entre mayus+minus y NO debe

Estas en el tema de La consulta distingue entre mayus+minus y NO debe en el foro de Mysql en Foros del Web. Buenas, Estoy haciendo un buscador para mi web y cuando hace la consulta distingue mayusculas y minusculas, no quiero que haga eso... porque quiero que ...
  #1 (permalink)  
Antiguo 02/11/2012, 14:52
 
Fecha de Ingreso: noviembre-2007
Ubicación: Irun
Mensajes: 79
Antigüedad: 16 años, 5 meses
Puntos: 0
La consulta distingue entre mayus+minus y NO debe

Buenas,

Estoy haciendo un buscador para mi web y cuando hace la consulta distingue mayusculas y minusculas, no quiero que haga eso... porque quiero que cuando busquen Naranja encuentren NARANJA/naranja... y así.,

He hecho lo de SHOW CREATE TABLE nombreTabla

Y me ha mostrado :

Código MySQL:
Ver original
  1. anuncio     CREATE TABLE `anuncio` (
  2.  `dniCliente` varchar(10) default NULL,
  3.  `categoria` varchar(40) default NULL,
  4.  `regimen` varchar(20) NOT NULL,
  5.  `tipo` varchar(40) default NULL,
  6.  `titulo` varchar(200) default NULL,
  7.  `ubicacion` varchar(40) default NULL,
  8.  `precio` varchar(10) default NULL,
  9.  `descripcion` varchar(400) default NULL,
  10.  `img` varchar(50) default NULL,
  11.  PRIMARY KEY  (`id`)

Y cuando veo la descripcion de cada campo también pone utf8_general_ci

¿Dónde falla?

Muchas gracias
Juncal
  #2 (permalink)  
Antiguo 02/11/2012, 15:09
Avatar de jlct  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 148
Antigüedad: 12 años
Puntos: 19
Respuesta: La consulta distingue entre mayus+minus y NO debe

Ayudaria tambien que mostraras como estas realizando la consulta ya que de alli parte el problema.!
  #3 (permalink)  
Antiguo 02/11/2012, 15:16
 
Fecha de Ingreso: noviembre-2007
Ubicación: Irun
Mensajes: 79
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: La consulta distingue entre mayus+minus y NO debe

Código MySQL:
Ver original
  1.     MATCH (id,dniCliente,categoria,regimen,tipo,titulo,ubicacion,descripcion,precio,img)
  2.     AGAINST ('$busqueda' IN BOOLEAN MODE)
  3.                               FROM
  4.     anuncio
  5.                               WHERE
  6.     MATCH (id,dniCliente,categoria,regimen,tipo,titulo,ubicacion,descripcion,precio,img)
  7.     AGAINST ('$busqueda' IN BOOLEAN MODE)
  8.     AND  id IN (SELECT id FROM anuncio WHERE categoria LIKE '$categoria')
  9. LIMIT $offset, $limit;
  10.  

Última edición por gnzsoloyo; 03/11/2012 a las 19:29 Razón: Mal etiquetado y no se admite codigo de programacion en los foros d ebase de datos.
  #4 (permalink)  
Antiguo 02/11/2012, 15:24
Avatar de jlct  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 148
Antigüedad: 12 años
Puntos: 19
Respuesta: La consulta distingue entre mayus+minus y NO debe

Cita:
Iniciado por condesitadeirun Ver Mensaje
Código MySQL:
Ver original
  1.     MATCH (id,dniCliente,categoria,regimen,tipo,titulo,ubicacion,descripcion,precio,img)
  2.     AGAINST ('$busqueda' IN BOOLEAN MODE)
  3.                               FROM
  4.     anuncio
  5.                               WHERE
  6.     MATCH (id,dniCliente,categoria,regimen,tipo,titulo,ubicacion,descripcion,precio,img)
  7.     AGAINST ('$busqueda' IN BOOLEAN MODE)
  8.     AND  id IN (SELECT id FROM anuncio WHERE categoria LIKE '$categoria')
  9. LIMIT $offset, $limit;
  10.  
Prueba de esa manera.!! corregi un detalle que vi cuando haces la consulta con el LIKE '%$categoria%'

Última edición por gnzsoloyo; 03/11/2012 a las 19:30
  #5 (permalink)  
Antiguo 02/11/2012, 15:34
 
Fecha de Ingreso: noviembre-2007
Ubicación: Irun
Mensajes: 79
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: La consulta distingue entre mayus+minus y NO debe

Sigue sin funcionar, lo he probado y nada.

Además lo que hace mal es $busqueda es decir la cadena que introduzco por teclado en un campo de texto
  #6 (permalink)  
Antiguo 02/11/2012, 16:00
Avatar de jlct  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 148
Antigüedad: 12 años
Puntos: 19
Respuesta: La consulta distingue entre mayus+minus y NO debe

dale un print a la sentencia completa para ver como la esta realizando.!!
  #7 (permalink)  
Antiguo 03/11/2012, 04:24
 
Fecha de Ingreso: noviembre-2007
Ubicación: Irun
Mensajes: 79
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: La consulta distingue entre mayus+minus y NO debe

Código MySQL:
Ver original
  1.     MATCH (id,dniCliente,categoria,regimen,tipo,titulo,ubicacion,descripcion,precio,img)  
  2.     AGAINST ('%irun%' IN BOOLEAN MODE)
  3. FROM anuncio
  4.     MATCH (id,dniCliente,categoria,regimen,tipo,titulo,ubicacion,descripcion,precio,img)  
  5.     AGAINST ('%irun%' IN BOOLEAN MODE)
  6. ORDER BY precio ASC LIMIT 0, 5

Le puse los % a busqueda que es el campo que me busca mal, por eso sale %irun% en vez de irun...

Última edición por gnzsoloyo; 03/11/2012 a las 05:40 Razón: Etiquetado incorrecto y poco legible.
  #8 (permalink)  
Antiguo 03/11/2012, 05:44
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: La consulta distingue entre mayus+minus y NO debe

Puedes estar teniendo varios problemas diferentes, pero el principal de todos es que no puedes usar comodines (%) en la cadena, porque el argumento de AGAINST debe ser una cadena constante.
MATCH() AGAINST es un tipo de busqueda por relevancia y no por aproximación, conceptos que no son concurrentes, sino más bien diferenciados.
TE sugiero que estudies todo el capítulo dedicado a busquedas de texto completo en el manual de referencia y te asegures de estar usandolo correctamente.
MySQL::12.7.1. Búsquedas booleanas de texto completo (Full-Text)

Por cierto: No se debe poner código de programación en los foros de Base de Datos (incluyendo este). Por favor elimina todo código no SQL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 03/11/2012, 13:07
 
Fecha de Ingreso: noviembre-2007
Ubicación: Irun
Mensajes: 79
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: La consulta distingue entre mayus+minus y NO debe

Sigo atascada, he vuelto a poner la variable $busqueda.

He leido el articulo y no entiendo a lo que se refiere la persona que me contestó anteriormente, ya que no es que desee que busque una u otra palabra, quiero que me busque algo de lo que esté en $busqueda de forma indistinta.

Me he basado en este ejemplo :

http://www.forosdelweb.com/f18/aport...-mysql-632623/

Por otra parte, no he encontrado como eliminar los mensajes antes escritos por mi, para poder eliminar el código php...

Código MySQL:
Ver original
  1. SELECT SQL_CALC_FOUND_ROWS id,dniCliente,categoria,regimen,tipo,titulo,ubicacion,precio,descripcion,img,
  2. MATCH (id,dniCliente,categoria,regimen,tipo,titulo,ubicacion,precio,descripcion,img)
  3. AGAINST ('hondarribia' IN BOOLEAN MODE) FROM anuncio
  4. WHERE MATCH (id,dniCliente,categoria,regimen,tipo,titulo,ubicacion,precio,descripcion,img)
  5. AGAINST ('hondarribia' IN BOOLEAN MODE)
  #10 (permalink)  
Antiguo 03/11/2012, 13:20
 
Fecha de Ingreso: noviembre-2007
Ubicación: Irun
Mensajes: 79
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: La consulta distingue entre mayus+minus y NO debe

Ya está, el problema estaba en la consulta (obvio) he quitado los campos que no utiliza la busqueda de cadena... y ha funcionado :)

Gracias a todos!!

Etiquetas: tipo, campos
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 12:38.