![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 0 Dołączył: 27.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam pewien problem, potrzebuję wydać do serwera SQL za "jednym zamachem" bardzo długoe zapytanie. Może mieć od 20 - 50 (!sic) parametrów. Na szczęscie porównywane dane są w 100 % statyczne. przykład: wyświetl materiały gdzie tytul jest równy "ala ma kota a kot ma ale" . ma więc zostać wykonane takie coś:
Przy 50 "ORach" , serwer sqł się wyłożył i uciął w połowie moje zapytanie. phpMyAdmin pokazał to samo (...) i zignorował resztę która była mniej więcej od połowy. Pytanie teraz co zrobić. Próbowałem użyć komendy
Ale, np tekst w stylu kota, był wykrywany przez np kotsa, ktosa, posia, zosia. Wiadomo że miał inną "wartość" ale nie było jednoznaczne. W tym wypadku muszę mieć 100 % pewność że wartość się zgadza. Mogę zrobić to w pętli PHP, ale wysłanie 50 zapytań do serwera bazodanowego pod rząd z tekstem where xxx='xx' end zapytania, obliczenie rezultatu, kolejne zapytanie (...) - w prostej linii spowoduję utratę pracy.- I cachowanie nie pomoże (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ewentualnie może Macie jakąś koncepcję, to podam co chce osiągnąć. Mamy dwa miasta "poznań", "wrocław". (nazwa pola = miasto) teraz mamy pole tytulu nazwa pola = tytul i muszę wydrukować z serwera powtarzające się rezultaty dla 2 miast. Moja koncepcja zakładała by pobrać napierw jedno miasto, poznań - zrobić listę TOP 50 nazw tytułów " or tytul1 or tytul 2 " nastepnie zadać to zapytanie dopisujac WHERE miasto=wroclaw, i dostanę listę ile z tych tytułów powtarza się we wrocławiu. Może dało by się to zrobić na poziomie jednego zapytania SQL. dokładnie to chcę osiągnąć: (IMG:http://img233.imageshack.us/img233/4671/wykres.th.png) Muszę wydrukowac listę materiałów które sa z "poznania" i "wroclawia" oraz zawierające taki sam tytuł. Ten post edytował ahold 10.07.2009, 22:22:31
Powód edycji: [erix] się robi
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
a takie cos?
SELECT xxx from tabela where tytul in ('ala', 'ma', 'kota', 'a', 'kot', 'ma', wpier...') oczywiscie wczesniej mozesz zoptymalizowac tablice aby nie bylo np 2x 'ma', lub krotkich wyrazow 'a' 'to'... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 14:25 |