Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL]SELECT WHERE tags zawiera 'słowo';, Jak zbudować takie polecenie?
Micky
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 11.07.2009

Ostrzeżenie: (0%)
-----


Gromadzę w bazie elementy, którym można przypisywać tagi, które są wpisywane w jednej kolumnie rozdzielone przecinkami. Chcę poprzez wyszukiwarkę napisaną w PHP znaleźć wszystkie elementy, które mają dany tag. Może powinienem to inaczej skonstruować? Jak? Jakaś osobna tabela w bazie danych? Nie mam pojęcia.

Szukałem długo w internecie i w mojej Biblii PHP5 MySQL i nie mogę znaleźć choć jest to bardzo dziwne.
Jak zbudować zapytanie SELECT do bazy, które wyświetli rekordy, które w polu "tags" mają wartość która zawiera podane wyrażenie "słowo".

Sądzę że jest to częsty przypadek dlatego bardzo dziwi mnie fakt, że niemogłem tego znaleźć.
Gromadzę w bazie elementy, którym można przypisywać tagi, które są wpisywane w jednej kolumnie rozdzielone przecinkami. Chcę poprzez wyszukiwarkę napisaną w PHP znaleźć wszystkie elementy, które mają dany tag. Może powinienem to inaczej skonstruować? Jak? Jakaś osobna tabela w bazie danych? Nie mam pojęcia.
Go to the top of the page
+Quote Post
Skie
post
Post #2





Grupa: Zarejestrowani
Postów: 555
Pomógł: 84
Dołączył: 20.02.2008
Skąd: Małopolska

Ostrzeżenie: (0%)
-----


Kod
SELECT * FROM tabela WHERE tags LIKE '%wyrazenie%';
Go to the top of the page
+Quote Post
zbig
post
Post #3





Grupa: Zarejestrowani
Postów: 144
Pomógł: 30
Dołączył: 5.05.2007
Skąd: Mannheim

Ostrzeżenie: (0%)
-----


Witam!

Like nie zawsze sie sprawdzi poniewaz
1. Jezeli masz np auto i autogielda przy wyszukiwaniu LIKE '%auto%' znajdziesz oba slowa ( a pewnie jeszcze wiecej (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) )
2. Jest ciezki dla mysql-a

Aby wyszukac konkretne slowo polecam

  1. <?php
  2. SELECT * FROM tabela WHERE tags RLIKE 'wyrazenie';
  3. ?>


Z tym ze w tym przypadku lepiej porozdzielac slowa spacjami

Pozdrawiam

Ten post edytował zbig 14.07.2009, 14:18:51
Go to the top of the page
+Quote Post
sowiq
post
Post #4





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


@zbig,
chcesz powiedzieć, że wyrażenie regularne (RLIKE) jest szybsze niż proste dopasowanie (LIKE)? Toż to jak porównanie preg_match" title="Zobacz w manualu PHP" target="_manual i strpos" title="Zobacz w manualu PHP" target="_manual.
Bardzo chętnie dowiem się czemu tak uważasz.
Go to the top of the page
+Quote Post
planet
post
Post #5





Grupa: Zarejestrowani
Postów: 61
Pomógł: 6
Dołączył: 15.07.2009
Skąd: Śląsk->Ruda Śląska

Ostrzeżenie: (0%)
-----


a ja bym proponował przenieść tagi do osobnej tabeli i poszczególne elementy łączyć za pomocą tabeli pośredniej. wtedy chyba jest łatwiej zarządzać tagami.
Go to the top of the page
+Quote Post

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: 15.09.2025 - 23:25