usar regular regexp_substr regexp reg not expressions ejemplos como mysql sql regex innodb

regular - regexp mysql php



Cómo regex en una consulta sql (2)

Creo que puedes usar REGEXP lugar de LIKE

SELECT trecord FROM `tbl` WHERE (trecord REGEXP ''^ALA[0-9]'')

Tengo una tarea simple donde necesito buscar un registro comenzando con caracteres de cadena y un dígito después de ellos. Lo que estoy intentando es esto

SELECT trecord FROM `tbl` WHERE (trecord LIKE ''ALA[d]%'')

Y

SELECT trecord FROM `tbl` WHERE (trecord LIKE ''ALA[0-9]%'')

Pero ambas consultas siempre devuelven un registro null

trecord ------- null

Donde como si ejecutara la siguiente consulta

SELECT trecord FROM `tbl` WHERE (trecord LIKE ''ALA%'')

vuelve

trecord ------- ALA0000 ALA0001 ALA0002

Significa que tengo registros que comienzan con ALA y un dígito después,

EDITAR

Lo hago usando PHP MySQL y el motor innodb para ser específico.


En mi caso (Oracle), es WHERE REGEXP_LIKE(column, ''regex.*'') . Ver here :

Función SQL

Descripción

REGEXP_LIKE

Esta función busca una columna de caracteres para un patrón. Utilice esta función en la cláusula WHERE de una consulta para devolver filas que coincidan con la expresión regular que especifique.

...

REGEXP_REPLACE

Esta función busca un patrón en una columna de caracteres y reemplaza cada aparición de ese patrón con el patrón que especifique.

...

REGEXP_INSTR

Esta función busca una cadena para una ocurrencia dada de un patrón de expresión regular. Usted especifica qué ocurrencia desea encontrar y la posición de inicio para buscar. Esta función devuelve un número entero que indica la posición en la cadena donde se encuentra la coincidencia.

...

REGEXP_SUBSTR

Esta función devuelve la subcadena real que coincide con el patrón de expresión regular que especifique.

(Por supuesto, REGEXP_LIKE solo coincide con las consultas que contienen la cadena de búsqueda, por lo que si desea una coincidencia completa, deberá usar ''^$'' para una coincidencia inicial ( ^ ) y final ( $ ), por ejemplo: ''^regex.*$'' .)