TransWikia.com

Buscar nombres de variables PHP en consulta MySQL

Stack Overflow en español Asked on December 23, 2021

Estoy intentado buscar variables php en una cadena de caracteres almacenada en una base de datos MySql.
Necesito hacer la búsqueda mediante regexp en la consulta MySql. Tengo la expresión regular (?<![wd])$ec_der(?![wd]) que me funciona en php pero no sé como hacer el equivalente para MySql.

Si busca en el texto ($x+(-$ec_izq - $ec_der)*$ec) * ($z+($des_tra - 5)) funciona y encuentra $ec_der. Gracias.

One Answer

Revisa los ejemplos de sintaxis REGEXP en https://dev.mysql.com/doc/refman/8.0/en/regexp.html#regexp-syntax

Para el caso puntual, puedes usar la siguiente (no es exactamente igual, pero aisla la variable $ec_der. Puedes revisar la sintaxis para agregar adicional lo que necesites

SELECT "($x+(-$ec_izq - $ec_der)*$ec) * ($z+($des_tra - 5))" REGEXP "[^A-Za-z0-9_]\$ec_der[^A-Za-z0-9_]"

[^A-Za-z0-9] equivaldría a ![wd]. Existen tambien una alternativa con aliases que sería [^[:alnum:]].

EDIT

Para el caso de buscar la expresion incluso en el inicio o final del texto deberia ser

SELECT "$ec_der ($x+(-$ec_izq - $ec_de1r)*$ec) * ($z+($des_tra - 5))" REGEXP "[^A-Za-z0-9_]?\$ec_der[^A-Za-z0-9_]?"

Aqui agregando ? en la expresion indica que el elemento es opcional.

Answered by F.Igor on December 23, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP