Voglio estrarre una parola da una colonna di stringhe di una tabella.Qual è l'equivalente di REGEXP_SUBSTR in mysql?
description
===========================
abc order_id: 2 xxxx yyy aa
mmm order_id: 3 nn kk yw
risultato atteso impostato
order_id
===========================
2
3
Tabella sarà al massimo hanno 100 righe, lunghezza del testo è ~ 256 char e colonna ha sempre un order_id
presente. Quindi le prestazioni non sono un problema.
In Oracle, è possibile utilizzare REGEXP_SUBSTR
per questo problema. Come risolverei questo in MySQL?
Modifica 1
Sto usando individuare e SUBSTR per risolvere il problema. Il codice è brutto. Dieci minuti dopo aver scritto il codice, sto maledicendo il ragazzo che ha scritto un codice così brutto.
Non ho trovato la funzione REGEXP_SUBSTR nei documenti MySQL. Ma spero che esista ..
Risposta a: Perché non è possibile ottimizzare il tavolo? Perché i dati sono archiviati in modo così stupido?
L'esempio che ho dato indica il problema che sto cercando di risolvere. Nello scenario reale, sto utilizzando un software di accodamento di terze parti basato su DB per l'esecuzione di attività asincrone. La coda serializza l'oggetto Ruby come testo. Non ho controllo sulla struttura della tabella O sul formato dei dati. Le attività in coda possono essere ricorrenti. Nella nostra configurazione di test, alcune delle attività ricorrenti stanno fallendo a causa di dati obsoleti. Devo cancellare queste attività per prevenire l'errore. Tali errori non sono comuni, quindi non voglio mantenere una tabella shadow normalizzata.
Questo è quello che sto facendo. +1 per prendere tempo per scrivere questo .. –
Risposta modificata per utilizzare CHAR_LENGTH() anziché LENGTH(), quest'ultima restituisce la dimensione occupata in byte e non la lunghezza della stringa. Ad esempio, avrai problemi con UTF8 –