Ho una tabella che contiene i seguenti valori:MySql REGEXP per abbinare due separati da virgola stringhe
id | value |
-----------------------
1 | 1,2,5,8,12,20 |
2 | 11,25,26,28 |
-----------------------
ora voglio cercare un po 'separati da virgola gli ID per esempio '1,3,6,7,11' dalla colonna del valore precedente, ad es.
SELECT id FROM tbl_name
WHERE value REGEXP '*some reg exp goes here containing 1,3,6,7,11*'
LIMIT 1,0;
SELECT id FROM tbl_name
WHERE value REGEXP '*some reg exp goes here containing 3,6,27,15*'
LIMIT 1,0;
sopra prima query dovrebbe restituire 1, mentre la seconda deve restituire NULL
Sono con le espressioni regolari Chiunque può aiutare. Grazie
Giusto per essere sicuro di capire, deve restituire '1' perché almeno uno dei numeri corrisponde sulla riga con quella id? –
Proprio come una nota a margine, non aspettatevi buone prestazioni da una query che utilizza questo formato di dati, non sarà in grado di utilizzare alcuna forma di indici e sarà sempre necessario leggere l'intera tabella per rispondere alla query. In altre parole, non va bene per il rendering di una pagina Web in tempo reale se ci sono più di poche centinaia di righe di dati. –
No, dovrebbe essere l'ID di quella riga, e sì è ritornato se almeno uno dei numeri corrisponde. – prashant