Quiero extraer una palabra de una columna de cadena de una tabla.¿Cuál es el equivalente de REGEXP_SUBSTR en mysql?
description
===========================
abc order_id: 2 xxxx yyy aa
mmm order_id: 3 nn kk yw
Resultado esperado conjunto
order_id
===========================
2
3
Tabla será en la mayoría tienen 100 filas, longitud del texto es de ~ 256 Char y la columna siempre tiene uno order_id
presente. Entonces el rendimiento no es un problema.
En Oracle, puedo usar REGEXP_SUBSTR
para este problema. ¿Cómo resolvería esto en MySQL?
Editar 1
estoy usando localizar y SUBSTR para resolver el problema. El código es feo Diez minutos después de escribir el código, estoy maldiciendo al tipo que escribió un código tan feo.
No encontré la función REGEXP_SUBSTR en documentos de MySQL. Pero espero que exista ...
Respuesta a: ¿Por qué no se puede optimizar la mesa? ¿Por qué se almacenan los datos de una manera tan tonta?
El ejemplo que di solo denota el problema que intento resolver. En un escenario real, estoy usando un software de colas de terceros basado en DB para ejecutar tareas asincrónicas. La cola serializa el objeto Ruby como texto. No tengo control sobre la estructura de la tabla O el formato de datos. Las tareas en la cola pueden ser recurrentes. En nuestra configuración de prueba, algunas de las tareas recurrentes están fallando debido a datos obsoletos. Tengo que eliminar estas tareas para evitar el error. Dichos errores no son comunes, por lo tanto, no quiero mantener una tabla de sombras normalizada.
Esto es lo que estoy haciendo. +1 por tomarse el tiempo para escribir esto ... –
Respuesta editada para usar CHAR_LENGTH() en lugar de LENGTH(), este último devuelve el tamaño ocupado en Bytes, y no la longitud de la cadena. Tendrás problemas con UTF8 por ejemplo –