2016-04-01 2 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); 

私はこれらの3つのSQLを動作させることはできません。更新しているのは3番目のものだけです。 どうすれば3つすべてが動作するのですか?物事が早くなることができるようにANDがありません複数のSQL文

+0

単に代わりにチェックするために、更新の(テスト目的のために)選択に一致するすべてのレコードがありません最初の2つのクエリ。また、2番目のクエリは 'OR'ではなく、' AND'でなければなりません。 – mitkosoft

+0

提案:ちなみに、2番目のクエリで** OR **の代わりに** AND **を使用する必要があります。 (** km '> 50、' km' <100 **) –

答えて

0

は、またあなたは、以下のようなクエリを簡素化することができます

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;