Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie
Forum PHP.pl > Forum > Bazy danych > MySQL
Diablos
Witam,

Chcialbym dowiedziec sie jak zapisac dwa takie zapytania:

  1. SELECT * FROM photos WHERE cos="cos" ORDER BY RAND() LIMIT 1
  2. SELECT * FROM photos WHERE cos="cosinnego" ORDER BY RAND() LIMIT 1


w jednym zapytaniu smile.gif

Samemu nie potrafie tongue.gif
Diablos
  1. ( SELECT * FROM photos WHERE cos="cos" ) UNION (
  2. SELECT * FROM photos WHERE cos="cosinnego" ) ORDER BY RAND() LIMIT 2


Kombinowalem tak, ale nie dzialalo.
nospor
Cytat
Kombinowalem tak, ale nie dzialalo.
Grunt to fachowa odpowiedz developera....

Co ci nie dziala? Blad zapytania? zle wyniki?
Raczej zle wyniki, zobacz gdzie dales order by i limit, a potem zobacz gdzie dawales w pierwszym poscie,a potem zobacz jeszcze raz linka co dostales smile.gif
Diablos
hihi tongue.gif

Otrzymuje zle wyniki.



Zapytanie wyglada obecnie tak:
  1. ( SELECT name FROM photos WHERE cos="cos" ORDER BY RAND() LIMIT 1) UNION (
  2. SELECT name FROM photos WHERE cos="cosinnego" ORDER BY RAND() LIMIT 1 )



"cosinnego" w ogole nie ma w bazie, a otrzymuje wynik, ktory zawiera "cos".
nospor
Cytat
"cosinnego" w ogole nie ma w bazie, a otrzymuje wynik, ktory zawiera "cos".
blinksmiley.gif
No bo skoro nie ma "cosinnego", a jest "cos" to sie nie dziw ze otrzymujesz "cos".
A co ty chciales otrzymac?
Diablos
No, chcialebym aby jesli nie ma danego pola to zwrocilo mi np. NULL.
nospor
Ale to co ty chcesz, nie jest nawet realizowane przez twoje dwa zapytanie, ktore podales w pierwszym poscie.
Na przyszlosc wytlumacz od razu oco ci chodzi, bo tylko topic sie niepotrzebnie rozrasta.

Jesli w zwroconych rekordach nie znajdziesz "cosinnego", znaczy ze tego nie ma smile.gif
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.