![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 109 Pomógł: 1 Dołączył: 23.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam pewien problem z wyszukiwarką. W tabeli sql mam 2 kolumny tytul i opis. Dla przykładu zawartość tytul to "Metallica - Nothing else matters" a w opisie dałem formułkę "Lorem ipsum...". Próbuję zrobić wyszukiwarkę aby wpisując "Metallica Lipsum" zwróciła mi właśnie ten rekord. Póki co nawet nie zwraca mi tego rekordu jeśli wpisuje "Metallica else".
Nie mam pojęcia jak sformułować zapytanie, o ile w ogóle da się takowe zrobić w jednym ciągu. Z góry dzięki za pomoc |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 16 Dołączył: 21.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
może coś w stylu:
SELECT concat(tytul,' ',opis) as tym FROM wideo having tym regexp '(Metallica|Lipsum)' odpowiednie wyrażenie regularne pozostawiam Twoim rozważaniom ![]() Przedświąteczna Pozdrówka Scalak Ten post edytował Scalak 22.12.2013, 12:13:36 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Po 1 primo robienie
Cytat LIKE '%cos%' OR LIKE 'cos%' OR LIKE '%cos' jest totalną bzdurą która nic nie daje. Wyrażenia "%cos%" zaspokaja wszystkie ww. więc 2 pozostałe nie dadzą żadnego pozytywnego efektu. Po 2 secundo skoro szukasz "Metallica Lipsum" to ta fraza jest szukana w CAŁOŚCI pomiędzy wyrazami. Poza tym taka fraza nie występuje u Ciebie w żadnym polu. Tak samo jest z "Metallica else". Nie występuje jako taki podany ciąg. Bo "Metallica - Nothing else matters" nie zawiera dokładnie takiego ciągu "Metallica else". Musiałbyś każdą spację zamieniać na % co jest lekko mówiąc szaleństwem. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 109 Pomógł: 1 Dołączył: 23.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 16 Dołączył: 21.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
a moje zapytanie jest złe?
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 109 Pomógł: 1 Dołączył: 23.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 16 Dołączył: 21.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
przetestuj bezpośrednio przez phpmyadmin na konkretnych danych. U mnie działa. Concat "sumuje" dwie kolumny, odziela je spacją. Having jest odpowiednikiem where (odsyłam do googli). Regexp pozwala wyszukiwane wyrażenie podać w postaci wyrażenia regularnego. Jeśli Ci nie będzie działac umieść proszę na jakiejś wklejce dump Twoich tabel - zerknę. Ten post edytował Scalak 28.12.2013, 18:04:09 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
HAVING jest odpowiedniekim WHERE... Niezłe...
![]() |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 16 Dołączył: 21.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
a czy ja napisałem że w nieagregujących? Użyłem swoistej analogi do zapytania zaproponowanego przez autora wątku - złej? Nie wnikam w agregację... sądzę, że Go to .......
Ten post edytował Scalak 28.12.2013, 20:48:30 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.07.2025 - 18:31 |