es posible eliminar todos los caracteres exceptos los alfabeticos para posteriormente poder hacer una consulta con regexp sobre el resultado.
normalmente lo hago con programacion estas cosas pero quiero saber si con mysql es posible.
| |||
eliminar todo menos los caracteres alfabeticos es posible eliminar todos los caracteres exceptos los alfabeticos para posteriormente poder hacer una consulta con regexp sobre el resultado. normalmente lo hago con programacion estas cosas pero quiero saber si con mysql es posible. |
| ||||
Respuesta: eliminar todo menos los caracteres alfabeticos si es posible, no hay una funcion pero podrias hacer algo como esto: https://stackoverflow.com/questions/...tring/22903586
__________________ What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me |
| |||
Respuesta: eliminar todo menos los caracteres alfabeticos Cita: pinta bien pero no me aclaro mucho, lo que pretendo es quitar todos las etiquetas html de dos campos y unirlo todo para hacer una busqueda en like por ejemplo.
Iniciado por Libras si es posible, no hay una funcion pero podrias hacer algo como esto: https://stackoverflow.com/questions/...tring/22903586 si parte de los campos tienen esto "<b>soy negrita</b>" al eliminar saldria esto: "bsoynegritab" necestio que salga "soynegrita". Es posible usar REGEXP y con el resultado usar LIKE O REGEXP. buscando en el manual encontre replace pero es una pena que no funcione con expresiones seria exactamente lo que necesito. Alguna idea para encontrar hacer lo que necesito? |
| ||||
Respuesta: eliminar todo menos los caracteres alfabeticos tu tendrias que hacer un parseador, no hay funciones que hagan eso especificamente, podrias ver si usando XML puedes obtener lo que necesitas: https://dev.mysql.com/doc/refman/5.5...functions.html
__________________ What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me |
| |||
Respuesta: eliminar todo menos los caracteres alfabeticos Hola Libras, mientro me leo tu enlace te quiero hacer una pregunta, es posible una vez creada la funcion que filtra la cadena pasada, pasarle a esta funcion como parametro para ser filtrado el valor de dos campos y con el resultado hacer una busqueda con LIKE. es posible esto entiendo que todo en la misma funcion es posible pero quiero usar la funcion dentro de un select con LIKE. saludos |
| |||
Respuesta: eliminar todo menos los caracteres alfabeticos respeto a usar xml es una buena solucion pero de momento no uso xml para almacenar datos. sobre todo es posible yo intento algo asi pero tengo pocos conocimientos en msyql. supongamos que la funcion que filtra se llama "filter(string)"
Código MySQL:
Ver original esto no me funciona tampoco con un solo campo en el filter |
| |||
Respuesta: eliminar todo menos los caracteres alfabeticos Estoy buscando en internet pero no encuentro nada que me oriente con la logica a implementar. necesito hacer una busqueda compleja que ni con expresiones regulares seria efectiva, la unica solucion seria el campo que quiero hacer la busqueda dejarlo solo con caracteres alfabeticos y posteriormente hacer la busqueda de la palabra clave con LIKE. Necestio saber la logica a implementar y con un ejemplo mejor aún pero me conformo con la logica ya que no conozco todos los recursos que es capaz mysql ,uso mariadb 5.5, ademas añadir que la busqueda se deberia de hacer en dos campos. nadie me puede ayudar? Sigo buscando...... |
| ||||
Respuesta: eliminar todo menos los caracteres alfabeticos ya investigaste sobre full text search? podrias poner un ejemplo de que es lo que quieres hacer?
__________________ What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me |
| |||
Respuesta: eliminar todo menos los caracteres alfabeticos Cita: hola, gracis por tu interes en seguir ayudandome, si ya investige sobre fulltext y llege a la conclusion que incluso regexp es mas lento pero mas poderoso pero aun asi tampoco consigo los resultados que quiero. lo que necesito es hacer una busqueda pero teniendo en cuenta que los datos tienen etiquetas html pongo un ejemplo para que se entienda mejor.campo descripcion contiene algo como esto 'cadena de texto' pero con etiquetas: "<span style='color:red'>ca</span>de<b>n</b>a de text<span>o</span>"; es decir contiene etiquetas html en cualquier caracter o incluso dos caracter y yo quiero buscar la palabra 'CADENA' con regexp pero me doy cuenta que al no seguir un patron no se buscar la palabra "CADENA", por eso si consiguiera filtrar los datos eliminando etiquetas podria conseguirlo de una manera mas facil. Que alternativas tengo, quizas creo que ya deberia usar programacion pero mientras no me digais que con sql no es posible no lo tendre en cuenta. saludos |
| ||||
Respuesta: eliminar todo menos los caracteres alfabeticos
__________________ What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me |
| |||
Respuesta: eliminar todo menos los caracteres alfabeticos No me sirve o no lo se ver, el problema es que no sigue un mismo patron y por eso se me complica, ejemplos de cadenas para buscar la palabra "CADENA": esto es una cadena "es<b>to</b> es un<span>a</span> ca<span>d</span><span style='color:red'>de<spn>na" o "esto es <span>una</span> ca<span></span>dena<span>" Lo que necesito es la funcion REGEXP_REPLACE pero uso mariadb 5 y solo esta a partir de la 10. Tambien podria crear una funcion que filtre los datos pasandole como parametro el campo de la tabla que quiero filtrar y verificar si esta o no para mostrar el registro, pero no se como se le puede pasar pasar a la funcion como parametro el valor del campo y posteriormente verificar si cumple condicion para mostrar registro en pantalla. Última edición por azaz; 22/12/2017 a las 11:40 |
| ||||
Respuesta: eliminar todo menos los caracteres alfabeticos Se supone que varias funciones de ahi lo que hacen es remover las etiquetas html o el texto que este dentro de los <> con este ejemplo: SELECT fnStripTags('this <html>is <b>a test</b>, nothing more</html>'); Regresaria This is a test, nothing more Que es lo que creo necesitas no?
__________________ What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me |
| |||
Respuesta: eliminar todo menos los caracteres alfabeticos Cita:
Iniciado por Libras Se supone que varias funciones de ahi lo que hacen es remover las etiquetas html o el texto que este dentro de los <> con este ejemplo: SELECT fnStripTags('this <html>is <b>a test</b>, nothing more</html>'); Regresaria This is a test, nothing more Que es lo que creo necesitas no? si pero no se como aplicarlo a los dos campos de mi tabla que necestio filtrar y posteriormente con el resultado verificar si esta la palabra clave buscada y si lo esta pues mostrar los registros que este la palabra. |
| ||||
Respuesta: eliminar todo menos los caracteres alfabeticos podria ser algo como esto:
__________________ What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me |
| |||
Respuesta: eliminar todo menos los caracteres alfabeticos Cita: Ese es el concepto que necesitaba, ahora sabiendo la sintaxis debo crear una funcion que haga todo lo que necesite. Muchas gracis Libras, saludos |
| |||
Respuesta: eliminar todo menos los caracteres alfabeticos Me dado cuenta de una cosa ahora que miro bien la consulta, como le paso a la funcion fnStripTags como parametro el campo que debo filtrar que posteriormente le asigno un alias para filtrarlo, este campo que quiero pasarle a la funcion es de la tabla del primer select. Última edición por azaz; 22/12/2017 a las 15:43 |
| ||||
Respuesta: eliminar todo menos los caracteres alfabeticos echele un poquito de imaginacion mi estimado:
__________________ What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me |
| |||
Respuesta: eliminar todo menos los caracteres alfabeticos ya probe asi: Cada tabla derivada debe tener su propio alias ese es el error que me da probe asi:
Código MySQL:
Ver original pero me da otro error de incopatibilidad entre campos, bueno esto creo ya poder solucionarlo. muchas gracias nuevamente. saludos Última edición por azaz; 22/12/2017 a las 16:07 |
| ||||
Respuesta: eliminar todo menos los caracteres alfabeticos revisa tus resultados, primero corre la funcion sobre la tabla(o sobre algunos registros), con esto te aseguras que te regresa la informacion como la necesitas, una vez que te aseguras de esto entonces agregas la parte del subquery para filtrar los resultados que ocupas
__________________ What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me |
| |||
Respuesta: eliminar todo menos los caracteres alfabeticos lo revise la funcion funciona bien me devuleve lo que necesito pero luego no me muestra registros me da la sensacion de que no recorre las filas el primer select. sigo investigando saludos |
| ||||
Respuesta: eliminar todo menos los caracteres alfabeticos ya hiciste esto:
Código MySQL:
Ver original Esto deberia de regresarte todos tus registros sin los tags de html, al hacerlo de este modo recorre "todos" los registros de tu tabla(o los que indiques)
__________________ What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me |
| |||
Respuesta: eliminar todo menos los caracteres alfabeticos Hola si exacto eso me funciona bien me devuelve lo que quiero pero despues con el resultado busco una palabra con like como me pusistes antes pero no me devuelve nada. |
Etiquetas: |