2016-04-01 5 views
0
$sql = "UPDATE user SET `niveua`='beginner' WHERE `km`< 50"; 
$result = $con->query($sql); 

$sql = "UPDATE user SET `niveua`='trained' WHERE `km`> 50 or `km` < 99"; 
$result = $con->query($sql); 

$sql = "UPDATE user SET `niveua`='expert' WHERE `km`> 100"; 
$result = $con->query($sql); 

Ich kann diese 3 sqls nicht funktionieren. Es ist nur der dritte, der aktualisiert wird. Also wie bekomme ich alle 3 zur Arbeit?mehrere SQL-Anweisungen

+0

einfach tun wählen (für Testzwecke) anstelle von Update, um dort alle Datensätze zu überprüfen, die auf übereinstimmen erste zwei Abfragen. Außerdem sollte die zweite Abfrage "AND", nicht "OR" sein. – mitkosoft

+0

Vorschlag: Übrigens sollten Sie in der zweiten Abfrage ** UND ** anstelle von ** ODER ** verwenden. (** WO 'km'> 50 UND' km' <100 **) –

Antwort

0

AND fehlt, können Sie auch Ihre Abfrage wie unten zu vereinfachen, so dass die Dinge schneller

UPDATE user 
SET niveua = 
CASE 
    WHEN (`km` < 50) 
     THEN 'beginner' 
    WHEN (`km`> 50 AND `km` < 99) 
     THEN 'trained' 
    WHEN (`km` > 100) 
     THEN 'expert' 
    ELSE niveua 
END;