MySQL IF statement

Malaxo

Erfahrenes Mitglied
Hey Leute

Ich habe da ein Problem und verstehe es auch nicht durch googlen.

In einer Tabelle habe ich eine Spalte für einen Counter und eine für die Wiederholung.

In der Wiederholung darf max. 1 drin stehen und dann der Counter max. 6 (<=6)
Ist die Wiederholung aber noch 0 darf der Counter max. 3 sein (<=3)

Code:
SELECT *
FROM anfragen
WHERE status = 'waiting'
IF((repetitions = '1' AND request_count <= '6') OR (repetitions = '0' AND request_count <= '3'))
ORDER BY id ASC

Wie müsste dieses Select IF aussehen um nur die Gültigen aus zu lesen?
Das ganze kommt dann noch in ein PHP Script aber das kann ich dann alleine, möchte aber nicht 2 Selects machen und diese dann mit PHP vergleichen, falls dies möglich ist.

Danke
 
Warum verwendest du überhaupt IF() an dieser Stelle? Fragen wir mal so: Was willst du eigentlich für Datensätze haben (welche Konditionen)?

1. Willst du alle Datensätze haben und dann vergleichen?
2. Willst du alle Datensätze haben, bei denen die Bedingung (repetitions = 0 & counter <= 3) oder (repitions = 1 & counter <= 6) ist und die anderen nicht?
3. Willst du genau das Gegenteil von 2?

Grundsätzlich denke ich nicht, das hier ein IF notwendig ist. Das kann man prima mit WHERE und AND+OR lösen.
 
Da muss gar kein If rein, weil bei dir gar keine Anweisung folgt...
SQL:
SELECT * 
FROM anfragen
WHERE status = 'waiting'
AND ( 
  (repetitions = 1 AND request_count <= 6) 
  OR 
  (repetitions = 0 AND request_count <= 3) 
)
 
Autch, keine Ahnung was ich mir da gedacht habe.

@Saftmeister: 2 ;) aber timestamp hat es schon geklärt.

Wahr wohl zu verwirrt - Zeit für eine Pause!
 

Neue Beiträge

Zurück