2015-05-22 26 views
5

używam MySQL i chcę wysłać oświadczenie podobny do tego w jednym zapytaniu:Jak wysłać tę instrukcję SQL w jednym zapytaniu?

UPDATE fruits SET ToBuy=’yes’ WHERE Price <100, ToBuy=’no’ WHERE Price >=100 

wiem, że mogę podzielić to na 2 oddzielnych zapytań i działa w ten sposób, ale zastanawiałem się, czy można to zrobić za pomocą pojedynczego zapytania.

+0

Co dokładnie zrobić? – Jean

+0

warunki ceny są sprzeczne. czy jest to błąd czy zamiar takiego postępowania? –

+0

Następnym razem może lepiej zrozumieć swoje pytanie, jeśli napiszesz kompletne dwa stwierdzenia, a nie w formie pół-krótkiej. – take

Odpowiedz

-8

Możesz zadzwonić UPDATE dwa razy.

UPDATE fruits SET ToBuy=’yes’ WHERE Price < 100; 
UPDATE fruits SET ToBuy=’no’ WHERE Price >= 100; 
+2

Brak odpowiedzi lub po prostu sprzeczność ze specyfikacjami pytań. – Jean

6

Musisz CASE oświadczenie:

UPDATE fruits 
SET ToBuy = CASE WHEN Price < 100 THEN 'yes' WHEN Price >=100 THEN 'no' END 

Oczywiście można po prostu użyć CASE WHEN Price < 100 THEN 'yes' ELSE 'no' END jak dobrze, ale użyłem powyższej klauzuli, aby dopasować swoją logikę.

+0

To też zrozumiałem. Zamierza opublikować odpowiedź. Jest to właściwy sposób postępowania. – Vickrant

+0

Tego właśnie szukałem. Wielkie dzięki. – panda

3

za pomocą słowa kluczowego CASE będzie działać:

UPDATE fruits 

SET 
    ToBuy = CASE WHEN Price<100 THEN 'yes' 
       ELSE 'no' 
2

Korzystanie Case pomoże Ci

UPDATE fruits SET ToBuy = CASE when Price < 100 Then 'yes' ELSE 'no' 
Powiązane problemy