Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Wyciaganie danych po przecinku
Forum PHP.pl > Forum > Przedszkole
proton
Witam mam tabele w bazie danych o nazwie, dajmy test która wygląda tak:

id komorka
1 12, 45, 361
2 11, 12, 932
3 983, 99, 1

I chce teraz wyciągnąć te wiersze w których jedna z liczb po przecinku w kolumnie komorka wynosi dajmy 12, czyli w takim przypadku powinien wyciągnąć wiersze o id 1 i 2.

Samo danie warunku WHERE komorka=12 nic nie daje.
piotrooo89
LIKE np:

  1. WHERE komorka LIKE '%12%';
proton
Odkopuje ten temat gdyż to rozwiązanie okazało się błędne. Otóż owszem wyciąga on rekordy gdzie w komórce występuje liczba 12 ale wyciąga także rekordy gdzie liczba to np. 112, 412 itd. A ja chce żeby wyciągnął tylko tam gdzie jest samo 12.
erix
http://dev.mysql.com/doc/refman/5.0/en/mat...nction_truncate
  1. WHERE TRUNCATE(komorka,0)=12
proton
Ten sposób też odapada. Zadziała on tylko jeśli pierwsza liczba to 12 gry w komórce jest 11, 12 to już nie wyciągnie tej danej.
erix
To czemu trzymasz liczby po przecinku...? Efektywniej dla operacji byłoby przechowywanie liczba = rekord, a nie po przecinku, gdyż widzisz, jakie rodzi to problemy.

W Twoim przypadku pozostaje tylko użycie funkcji pobierającą pozycję przecinka, rozdzielenie wg znaków i truncate na dane wartości.

Wyjdzie trochę tasiemcowate zapytanie, ale da się. Zaznaczam tylko, że IMHO najlepiej byłoby przeprojektować strukturę bazy.
seba_bwo
  1. WHERE komorka='12' OR komorka LIKE '% 12,%' OR komorka LIKE '% 12' OR komorka LIKE '12, %'
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.