Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [sql]Ważność warunków
Siner
post
Post #1





Grupa: Zarejestrowani
Postów: 159
Pomógł: 6
Dołączył: 2.01.2004

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


Otóż mam takie pytanie czy da się w jakiś sposób określić "moc" warunku.
Mam przykładowe zapytanie:
  1. SELECT pola FROM news LEFT JOIN text ON news.newsId = text.newsID
  2. WHERE news.newsShow = 1 AND news.newsId = :newsId AND text.newsLanguage = $Router->getP(2) OR text.newsLanguage = $_SESSION['userLanguage'] OR text.newsLanguage = news.newsDefaultLanguage LIMIT 1

Dokładniej chodzi mi o końcówkę: text.newsLanguage = $Router->getP(2) OR text.newsLanguage = $_SESSION['userLanguage'] OR text.newsLanguage = news.newsDefaultLanguage
I chodzi mi o to czy w jakiś sposób da się zrobić żeby tabele były najpierw przeszukiwane pod 'kolorem czerwonym', później 'pomarańczowym', a na końcu niebieskim. Bo teraz jeśli znajdzie się wpis w bazie który spełni warunek "text.newsLanguage = news.newsDefaultLanguage" (zawsze chyba tak będzie) to zwróci mi właśnie ten.
Czy muszę przygotować 3 oddzielne zapytania i sprawdzać czy zwróciło jakiś wynik.

Ten post edytował Siner 18.04.2007, 21:32:05
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
Sedziwoj
post
Post #2





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


Mi się wydaje, że bez jakiejś logiki tego nie zrobisz... czyli albo jakaś funkcja w bazie albo po prostu trzy zapytania.
Możesz też zrobić UNION i przy każdym dać statyczny numer w kolumnie różny dla każdego z trzech zapytań, wtedy możesz sprawdzić ile jest z pierwszego, ile z drugiego itd.

Można też CASE użyć, aby sprawdzać czy jest coś, jak tak to wybierać, jak nie to sprawdzać kolejny...

Ja bym też się zastanowił, czy inaczej nie powinno się tego robić, a nie kombinować z zapytanie. Ponieważ czasami można zmienić sposób działania, tak że zapytanie jest proste.
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: 22.08.2025 - 19:53