Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL]Problem z LIKE
Forum PHP.pl > Forum > Przedszkole
henio
Mam w bazie danych kolumnę, gdzie zapisane są rekordy w następujący sposób:
Kod
'9 , 8'
'3 , 5'
'9 , 3 , 5'
'9 , 10 , 1 , 5'


Robię takie zapytanie:
  1. SELECT count(*) AS ile
  2. FROM newsy WHERE tagi LIKE '3'
  3. ORDER BY DATA DESC LIMIT 0, 30


Powinno mi wyświetlić się 2 a wyświetla się 0.
phpion
Cytat(henio @ 21.09.2008, 14:43:51 ) *
Powinno mi wyświetlić się 2 a wyświetla się 0.

Wyświetla ci się tak, jak masz zapisane w zapytaniu. tagi LIKE '3' oznacza dokładnie to samo co tagi='3'. Musisz użyć % aby okreslić, że przed i po szukanym znaku może wystąpić cokolwiek, czyli:
  1. SELECT count(*) AS ile
  2. FROM newsy WHERE tagi LIKE '%3%'
  3. ORDER BY DATA DESC LIMIT 0, 30
Albitos
Poza tym, jeżeli to naprawdę jest system tagów polecam relację wielu do wielu. Słowem tablelę tags, posts oraz posts_to_tags z odpowiednimi kluczami obcymi.
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.