Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> jak sprawdzić czy w tabeli istnieją rekordy, które spełniają jakiś warunek ?
jolam
post 22.10.2009, 09:25:46
Post #1





Grupa: Zarejestrowani
Postów: 259
Pomógł: 0
Dołączył: 12.07.2009

Ostrzeżenie: (10%)
X----


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
Go to the top of the page
+Quote Post
webdice
post 22.10.2009, 09:31:34
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Jakie pytanie taka odpowiedz - sprawdzasz czy warunek został spełniony, jeśli tak to wykonujesz zapytanie do bazy. Sprecyzuj pytanie.
Go to the top of the page
+Quote Post
jolam
post 22.10.2009, 10:11:08
Post #3





Grupa: Zarejestrowani
Postów: 259
Pomógł: 0
Dołączył: 12.07.2009

Ostrzeżenie: (10%)
X----


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.
Go to the top of the page
+Quote Post
webdice
post 22.10.2009, 10:16:39
Post #4


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




  1. SELECT * FROM `table` WHERE `someField` == 'someValue'
Go to the top of the page
+Quote Post
nospor
post 22.10.2009, 10:19:47
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




nie: ==
a: =
mysql to nie php winksmiley.jpg


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
jolam
post 22.10.2009, 10:57:26
Post #6





Grupa: Zarejestrowani
Postów: 259
Pomógł: 0
Dołączył: 12.07.2009

Ostrzeżenie: (10%)
X----


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.
Go to the top of the page
+Quote Post
and_woj
post 22.10.2009, 12:02:01
Post #7





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 22.10.2009

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


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
Go to the top of the page
+Quote Post
jolam
post 22.10.2009, 13:33:22
Post #8





Grupa: Zarejestrowani
Postów: 259
Pomógł: 0
Dołączył: 12.07.2009

Ostrzeżenie: (10%)
X----


działa!

Mam jeszcze jedno pytanie: http://forum.php.pl/index.php?showtopic=133537
Bardzo dziękuję i pozdrawiam Jola
Go to the top of the page
+Quote Post
wlatanowicz
post 24.10.2009, 00:21:18
Post #9





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 22.10.2009

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


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 22.06.2025 - 03:14