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

buscar sentencia

Estas en el tema de buscar sentencia en el foro de Mysql en Foros del Web. Hola a todos. Me gustaría buscar dentro de un campo mediumtext de una BD, solo palabras largas que superen los 60 carácteres. ¿es posible? SELECT ...
  #1 (permalink)  
Antiguo 22/05/2013, 18:41
 
Fecha de Ingreso: julio-2010
Ubicación: Cerca Sitges (Barcelona)
Mensajes: 98
Antigüedad: 13 años, 9 meses
Puntos: 4
buscar sentencia

Hola a todos.

Me gustaría buscar dentro de un campo mediumtext de una BD, solo palabras largas que superen los 60 carácteres.

¿es posible?

SELECT * FROM `contactos` WHERE descripcion LIKE (<60 comodines???)


Gracias.
  #2 (permalink)  
Antiguo 23/05/2013, 03:12
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: buscar sentencia

Directamente en la base de datos no seria lo mas adecuado....

SELECT * FROM `contactos` WHERE LENGTH(descripcion)>60

Esto eliminara los registros cuya descripción no puede incluir palabras del tipo que buscas, yo trataria el resultado con programacion externa.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 23/05/2013, 10:33
 
Fecha de Ingreso: julio-2010
Ubicación: Cerca Sitges (Barcelona)
Mensajes: 98
Antigüedad: 13 años, 9 meses
Puntos: 4
Respuesta: buscar sentencia

Gracias Quim.

Sigo sin conseguir el resultado que busco.

Realmente me gustaría encontrar cadenas de palabras largas, SIN separación, tipo:

ww2w.lopublicoylomaterial/entender/capacidadesalternatif/dole.tf
  #4 (permalink)  
Antiguo 23/05/2013, 11:14
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: buscar sentencia

Como te dijo quimf: Eso no se logra desde el SQL. Se hace desde programación, porque de lo contrario hay que iterar caracter a caracter la cadena en un SP.
Y termina sin ser funcional.
En cambio, los lenguajes tienen medios para partir la cadena directamente y analizar la longitud de cada subcadena, en cada colección obtenida.

Los DBMS que puedan hacer algo así terminan haciendo lo mismo que lograrías de un modo más simple en programación. De allí que en realidad en SQL lo único funcional es realizar la consulta propuesta, que te permite descartar todo aquello que no tenga la longitud mínima para análisis.

¿Se entiende el problema?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 23/05/2013, 12:43
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: buscar sentencia

Hola rafaxusirati:

Creo que con lo que te han comentado quimfv y gnzsoloyo te debe haber quedado claro cuál es la problemática en lo que quieres hacer y el hecho de que podría resultar más fácil hacerlo mediante programación... sin embargo, se me ocurre un pequeño truco que igual y te puede servir... podrías utilizar expresiones regulares para extraer los registros QUE CONTENGAN AL MENOS UNA PALABRA CON LA LONGITUD QUE INDICAS, sería más o menos así:


SELECT * FROM tabla WHERE descripcion REGEXP '([a-z.]{60,})+'

Observa este ejemplo:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla;
  2. +----------------------------------+
  3. | descripcion                      |
  4. +----------------------------------+
  5. | esta frase tiene palabras cortas |
  6. | estaesunafraselarga              |
  7. | algo loqueseapero  mas           |
  8. | en www.forosdelweb.com           |
  9. | supercalifragilistico en el cine |
  10. +----------------------------------+
  11. 5 rows in set (0.10 sec)
  12.  
  13. mysql> SELECT * FROM tabla
  14.     -> WHERE descripcion REGEXP '([a-z.]{15,})+';
  15. +----------------------------------+
  16. | descripcion                      |
  17. +----------------------------------+
  18. | estaesunafraselarga              |
  19. | en www.forosdelweb.com           |
  20. | supercalifragilistico en el cine |
  21. +----------------------------------+
  22. 3 rows in set (0.00 sec)

Esto igual y te puede servir de ayuda... como comentaron anteriormente, MySQL no proporciona funciones para dividir las frases en palabras, pero igual y te puede servir de algo.

Saludos
Leo.
  #6 (permalink)  
Antiguo 23/05/2013, 13:37
 
Fecha de Ingreso: julio-2010
Ubicación: Cerca Sitges (Barcelona)
Mensajes: 98
Antigüedad: 13 años, 9 meses
Puntos: 4
Respuesta: buscar sentencia

Me pongo en ello, Gracias a todos
  #7 (permalink)  
Antiguo 23/05/2013, 14:19
 
Fecha de Ingreso: julio-2010
Ubicación: Cerca Sitges (Barcelona)
Mensajes: 98
Antigüedad: 13 años, 9 meses
Puntos: 4
Respuesta: buscar sentencia

Al parecer, solo encuentra cadenas de puntos..........................

No consigue encontrar palabras entrelazadas SIN espacios.

SELECT * FROM contactos WHERE descripcionanuncio REGEXP '([a-z.]{60,})+'

Al parecer la única manera es la que me comentabais, si no entendí mal, crear un archivo en .php para realizar una búsqueda sobre la BD.

¿algún código de ejemplo?

Muchas gracias.
  #8 (permalink)  
Antiguo 23/05/2013, 14:29
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: buscar sentencia

Cita:
Al parecer la única manera es la que me comentabais, si no entendí mal, crear un archivo en .php para realizar una búsqueda sobre la BD.

¿algún código de ejemplo?
OFF TOPIC en este foro.

Pregunta en el foro de PHP, que es donde se tratan temas de PHP...
__________________
¿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 23/05/2013, 14:35
 
Fecha de Ingreso: julio-2010
Ubicación: Cerca Sitges (Barcelona)
Mensajes: 98
Antigüedad: 13 años, 9 meses
Puntos: 4
Respuesta: buscar sentencia

Muchas gracias a todos.

Saludos.

Etiquetas: campo, select, sentencia
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:22.