Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak sprawdzić czy w tabeli istnieją rekordy, które spełniają jakiś warunek ?
Forum PHP.pl > Forum > Bazy danych
jolam
Chcę pobrać elementy z tablicy ale tylko jeśli w tej tablicy są inne elementy spełniające wymagane warunki.
Czyli coś co działało by jak
if( w tablicy są elementy spełniające warunek1)
{then select elementy spełniając warunek2 }

Jak to zrobić?
Pozdrawiam serdecznie Jola
webdice
Jakie pytanie taka odpowiedz - sprawdzasz czy warunek został spełniony, jeśli tak to wykonujesz zapytanie do bazy. Sprecyzuj pytanie.
jolam
No ale jak to zrobić w sql?
Jak sprawdzić czy istnieją elementy spełniające jakieś warunki? Nie chodzi mi o zwrócenie ilości tylko o to czy istnieją i potem na podstawie tej wiadomosci (istnieją lub nie) wykonać zapytanie sql z odpowiednim warunkiem.
webdice
  1. SELECT * FROM `table` WHERE `someField` == 'someValue'
nospor
nie: ==
a: =
mysql to nie php winksmiley.jpg
jolam
Nie o to chodzi!
Przecież pisałam, że chce pobrać inne elementy niż te które maja spełniać warunek.
Przykładowo jeśli w tabeli są elementy koloru czerwonego to ja chce z tej samej tabeli pobrać elementy koloru zielonego.

Może napiszcie od razu czy to da się zrobić w SQL i czy wiecie jak? Jeśli nie to będę musiała rozbić to na co najmniej dwa zapytania i obrabiać w PHP.

Pozdrawiam serdecznie Jola.
and_woj
Cytat(jolam @ 22.10.2009, 10:25:46 ) *
Chcę pobrać elementy z tablicy ale tylko jeśli w tej tablicy są inne elementy spełniające wymagane warunki.
Czyli coś co działało by jak
if( w tablicy są elementy spełniające warunek1)
{then select elementy spełniając warunek2 }

Jak to zrobić?
Pozdrawiam serdecznie Jola

Może tak:

select elementy
from tablica
where warunek2 and (select count(*) from tablica where warunek1) != 0
jolam
działa!

Mam jeszcze jedno pytanie: http://forum.php.pl/index.php?showtopic=133537
Bardzo dziękuję i pozdrawiam Jola
wlatanowicz
Zamiast
  1. (SELECT count(*) FROM tablica WHERE warunek1) != 0

lepiej użyć
  1. EXISTS(SELECT * FROM tablica WHERE warunek1)

Tak jest znacznie wydajniej - exists szuka pierwszej krotki spełniającej warunek, count(*) zlicza wszystkie krotki spełniające warunek
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.