Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: WARUNEK W SQL
Forum PHP.pl > Forum > Bazy danych > MySQL
pawel007
Witam!

Mam tabele ze zdjęciami dla ofert, dla jednej oferty może być dostępne wiele zdjęć, lecz tylko jedno zdjęcie dla jednego id_oferty może mieć flagę "główne" (ale nie musi). Potrzebuję utworzyć następujący warunek bezpośrednio w zapytaniu SQL, aby nie tworzyć kilku bezsensownych zapytań:

Wybierz foto dla danego id_oferty jeżeli foto jest ustawione jako główne, inaczej wybierz pierwsze foto (LIMIT 0,1) dla danego id_oferty (jeżeli dla danego id_oferty nie ma rekordów z flagą "głowne")

niestety po przeszukaniu forum nie znalazłem przykładu, który byłby adekwatny do mojego problemu, a drogą dedukcji nie udało mi się dojść do konkretnego rozwiązania, dlatego proszę o pomoc.
phpion
Może sortowanie się sprawdzi? Coś w stylu:
  1. SELECT ... ORDER BY glowne, normalne LIMIT 1

Oczywiście pod glowne i normalne podstaw swoje wartosci lub flagi.
pawel007
Cytat(phpion.com @ 28.12.2007, 00:58:49 ) *
Może sortowanie się sprawdzi? Coś w stylu:
  1. SELECT ... ORDER BY glowne, normalne LIMIT 1

Oczywiście pod glowne i normalne podstaw swoje wartosci lub flagi.


Niestety nic to nie daje, zapytanie :

  1. SELECT * FROM foto WHERE id_oferty = 'id_oferty' ORDER BY glowne=1, glowne=0 DESC LIMIT 0, 1


Zwraca za każdym razem inne wartości
prgTW
  1. SELECT *
  2. FROM foto WHERE id_oferty = 999
  3. ORDER BY glowne DESC, id_foty ASC LIMIT 1


zakladam ze 'glowne' przyjmuje wartosci 0-1
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.