Mam tabelę zawierającą następujące wartości:MySql REGEXP dopasować dwie oddzielone przecinkami ciągi
id | value |
-----------------------
1 | 1,2,5,8,12,20 |
2 | 11,25,26,28 |
-----------------------
teraz chcę szukać jakiś oddzielonych przecinkami identyfikatorów np "1,3,6,7,11" z kolumny powyżej wartości np.
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;
powyżej 1. zapytania powinien powrócić 1 a 2. Należy zwrócić NULL
Jestem nowy z wyrażeń regularnych może ktoś pomóc. Dzięki
Wystarczy, aby upewnić się, że rozumiem, powinna ona powrócić '1 ', ponieważ przynajmniej jedna z liczb mecze w wierszu z tym id? –
Tak jak na marginesie, nie oczekuj dobrej wydajności z zapytania używającego tego formatu danych, nie będzie on mógł korzystać z żadnej postaci indeksów i zawsze będzie musiał przeczytać całą tabelę, aby odpowiedzieć na zapytanie. Innymi słowy, nie nadaje się do renderowania strony internetowej w czasie rzeczywistym, jeśli jest więcej niż kilkaset wierszy danych. –
Nie powinien to być identyfikator tego wiersza, i tak, jeśli przynajmniej jeden z numerów pasuje. – prashant