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

Duda en consulta mysql

Estas en el tema de Duda en consulta mysql en el foro de Mysql en Foros del Web. Hola a todos los foreros!! espero que esten bien !!... Pues bien les comento mi duda, estoy tratando de hacer una consulta mysql a un ...
  #1 (permalink)  
Antiguo 07/03/2011, 08:12
 
Fecha de Ingreso: marzo-2010
Ubicación: Cali
Mensajes: 203
Antigüedad: 14 años
Puntos: 5
Pregunta Duda en consulta mysql

Hola a todos los foreros!! espero que esten bien !!...
Pues bien les comento mi duda, estoy tratando de hacer una consulta mysql a un campo de una tabla donde se guardan comentarios y pues lo que necesito es traer a traves de una consulta todos los comentarios que no contenga X palabra, intente con not in pero me trae todos los comentarios ye que la consulta se interpreta como que si no es igual a la palabra descrita dentro de not in me muestre los datos y lo que necesito es que no contenga x palabra. Espero me puedan ayudar con esto.

De antemano agradezco mucho por su atencion y por su tiempo
  #2 (permalink)  
Antiguo 07/03/2011, 09:41
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 2 meses
Puntos: 447
Respuesta: Duda en consulta mysql

Hola andruxand:

Creo que lo que tienes que hacer es utilizar un NOT LIKE. En el ejemplo que pongo existen 4 registros peso muestro sólo aquellos que no contengan la palabra COMENTARIO.

Código MySQL:
Ver original
  1. mysql> create table comentarios (id int, comentario varchar(50));
  2. Query OK, 0 rows affected (0.05 sec)
  3.  
  4. mysql> insert into comentarios values (1, 'Esto es un comentario'), (2, 'Esto es
  5. otro comentario'), (3, 'Lo que sea'), (4, 'Un comentario más');
  6. Query OK, 4 rows affected (0.02 sec)
  7. Records: 4  Duplicates: 0  Warnings: 0
  8.  
  9. mysql> select * from comentarios;
  10. +------+-------------------------+
  11. | id   | comentario              |
  12. +------+-------------------------+
  13. |    1 | Esto es un comentario   |
  14. |    2 | Esto es otro comentario |
  15. |    3 | Lo que sea              |
  16. |    4 | Un comentario más       |
  17. +------+-------------------------+
  18. 4 rows in set (0.00 sec)
  19.  
  20. mysql> select * from comentarios where comentario not like '%comentario%';
  21. +------+------------+
  22. | id   | comentario |
  23. +------+------------+
  24. |    3 | Lo que sea |
  25. +------+------------+
  26. 1 row in set (0.00 sec)

Sólo tienes que tener cuidado en el manejo de mayúsculas y minúsculas y acentos y si quieres búsquedas más exactas igual y te convendría buscar información acerca de BÚSQUEDAS DE TEXTO COMPLETO.

Saludos y espero que te sirva de algo la información.
Leo.
  #3 (permalink)  
Antiguo 07/03/2011, 12:27
 
Fecha de Ingreso: marzo-2010
Ubicación: Cali
Mensajes: 203
Antigüedad: 14 años
Puntos: 5
Respuesta: Duda en consulta mysql

Hola leonardo, antes que nada muchas gracias por tu ayuda. Precisamente er lo que necesitaba pero no se que pasa que al aplicarlo a mi query o consulta no funciona.. Mas raro aun cuando hago la consulta directamente en la base de datos mysql a traves de phpmyadmin funciona perfecto, pero al hacerla desde lenguaje php me sale "query was empty", no entiendo por que si me da resultado realizando la consulta desde la base de datos deberia ser igual desde el query en php, dejo mi cosulta como la tengo para que por favor me guien si estoy haciendo alo mal.

Código MySQL:
Ver original
  1. SELECT CONCAT( usuario.nombres, ' ', usuario.apellidos ) AS Registro, h.acta_observacion, h.comentario, group_concat( DISTINCT (
  2. doc.nombre_corto
  3. ) ) AS doc, r.fecha_radicado, r.categoria, r.formulario, r.nro_radicado, r.proyecto
  4. FROM hoja_ruta h, usuario, (
  5. radicado r
  6. LEFT JOIN documento_radicado AS radi ON r.id_radicado = radi.id_radicado
  7. )
  8. LEFT JOIN documento AS doc ON ( radi.id_documento = doc.id_documento )
  9. AND (
  10. radi.estado = doc.estado
  11. )
  12. WHERE radi.estado =1
  13. AND r.estado =1
  14. AND h.id_radicado = r.id_radicado
  15. AND h.comentario NOT LIKE '%ENTREGADA%'
  16. AND r.id_usuario = usuario.id_usuario
  17. AND r.fecha_radicado
  18. BETWEEN '2010-06-01'
  19. AND '2010-12-31'
  20. GROUP BY r.id_radicado
  21. ORDER BY h.id_hoja_ruta DESC

Nuevamente muchar gracias por su atencion y su tiempo
  #4 (permalink)  
Antiguo 08/03/2011, 08:19
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 2 meses
Puntos: 447
Respuesta: Duda en consulta mysql

Hola andruxand:

Si dices que la consulta funciona correctamente cuando la haces en la BD pero falla cuando la haces con PHP entonces el problema es con PHP. igual y sería conveniente que pusieras tu código en el foro especial de PHP para que alguien con conocimientos en ese lenguaje te eche la mano.

Saludos
Leo
  #5 (permalink)  
Antiguo 08/03/2011, 08:41
 
Fecha de Ingreso: marzo-2010
Ubicación: Cali
Mensajes: 203
Antigüedad: 14 años
Puntos: 5
Respuesta: Duda en consulta mysql

muchas grcias leonardo ya solucione esa parte quitendole el sprintf :), lo que me falta es como hacer que me muestre datos de un campo documentos donde su estado es 1 y en caso de que sea 0 el estado, no me muestre nada EN EL CAMPO DOCMENTOS, como tengo la conslta solo me muestra los que tienen estado uno pero no me muestra informacion o registros que tengan estado cero que deberia salir el campo el registro pero no deberia mostrar documentacion, si me puedes ayudar con eso te estaria muy agradecido y de antemano disculpa la molestia.

Etiquetas: Ninguno
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 02:16.