Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyróżnienie jednego rekordu
Forum PHP.pl > Forum > Bazy danych > MySQL
kraskovich
Posiadam baze artykulow w której każdy art. oznaczony jest numerem id oraz min słowami kluczowymi.
Wyciagam z bazy artykuły, które oznaczone są słowem "polecamy" oraz sortuje wynik losowo:

select a.id, a.tytul, a.data, a.zajawka
from obud_artykuly a
where slowa_kluczowe like '%polecamy%'
order by rand() limit 4

Chciałbym tak zmodyfikować powyzsze zapytanie aby na samym początku wyników pojawiał sie artykuł o numerze id='3233'.
Pozostałe 3 artykuły powinny być wyciagane z bazy na "starych zasadach" czyli ze slowem "polecamy" oraz wyswietlane losowo.

dzieki serdeczne
nospor
UNION
pierwszy select pobierze dane ID
drugi select pobierze z danymi slowami kluczowymi
mmmmmmm
  1. SELECT a.id, a.tytul, a.DATA, a.zajawka
  2. FROM obud_artykuly a
  3. WHERE slowa_kluczowe LIKE '%polecamy%'
  4. ORDER BY case when id=3233 then 0 else 1 end, rand() LIMIT 4
kraskovich
zrobilem to tak:

(select id, tytul, data, zajawka from obud_artykuly where id='3233' )
UNION
(select a.id, a.tytul, a.data, a.zajawka from obud_artykuly a
where slowa_kluczowe like '%polecamy%'
order by data desc, id desc
limit 3 )

i dziala smile.gif

wielkie dzieki
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.