Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dzielenie kolumny po przecinku, LIKE,REGEXP,substring_index ? A może jeszcze inaczej?
MateuszRyaN
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 17:47