Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 0 Dołączył: 10.11.2010 Skąd: Jastrzębie Zdrój Ostrzeżenie: (0%)
|
Witam, mam pewien problem. Potrzebuje wykonać zapytanie, które sprawdzi, czy podana wartość występuje w określonej komórce.
Próbowałem LIKE jednak to nie jest zbyt dobry wybór, substring_index wyciąga mi określoną pozycje, ale przecież nie wiem ile ich może być, oraz REGEXP np '^5,$' natomiast coś mi nie chce działać (IMG:style_emoticons/default/sad.gif) id - category 1 - 14,24,5,21 2 - 3,4,13,5 3 - 16,17,22,4,5,8 Potrzebuję zapytania, które wyszuka mi wszystkie rekordy pasujące np. do 5 (1,2,3) lub 4 (2,3). Prosiłbym o jakąś pomoc, wskazówkę. Pozdrawiam. Ten post edytował MateuszRyaN 10.11.2012, 22:09:14 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D |
Wiem, że nie jest to odpowiedź, ale patrząc co zawiera druga kolumna, myślę że masz źle zaprojektowaną bazę. Jeśli dochodzi do sytuacji takiej jak opisana, to niemal na pewno da się to zamienić na tabelę łączącą, która powinna Ci o niebo uprościć tego typu problemy.
Co do zapytania, to trudno Ci będzie znaleźć sensowne rozwiązanie tego problemu z prostej przyczyny... Co byś nie wpisał, musisz zwracać uwagę by podana przez Ciebie liczba nie była się częścią innej. Powstają Ci więc 3 warunki ograniczające połączone OR: ^5, <- 5 na początku ,5, <- 5 gdzieś w środku ,5$ <- 5 na końcu A niestety LIKE i REGEXP do demonów wydajności nie należą... Zwłaszcza w drugim przypadku. LIKE zresztą w Twoim przypadku oleje indeksy, więc o jakimkolwiek przyspieszeniu zapomnij. Lepiej wyjdziesz przebudowując to. Inaczej o jakimkolwiek wygodnym sprawdzani, edytowaniu i manipulacjach wszelakich po stronie bazy zapomnij. |
|
|
|
MateuszRyaN Dzielenie kolumny po przecinku 10.11.2012, 22:07:55
sazian ewentualnie pole typy SET powinno zadziałać 10.11.2012, 22:59:47
MateuszRyaN Dzięki za info, no właśnie próbowałem różnych meto... 10.11.2012, 23:18:39
thek Powiem tak... Przebuduj to, póki jest w miarę małe... 10.11.2012, 23:26:53
mmmmmmm Jeśli nie chcesz (nie możesz) przebudować bazy, to... 11.11.2012, 00:48:35 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 17:47 |