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

O 3 sql en işe alınamıyor. Bu sadece güncellenmekte olan üçüncü. Peki her 3 işe nasıl çalışır? işler daha hızlı olabilir, böylece AND Eksikbirden sql ifadeleri

+0

basitçe yerine kontrol etmek için güncelleme (test amaçlı) seçmek eşleştirilecek olacak kayıtların bulunup yapmak ilk iki sorgu. ek olarak, ikinci sorgu 'VEYA değil, OR 'olmalıdır. – mitkosoft

+0

Öneri: Bu arada ikinci sorguda ** VE ** yerine ** ** VEYA kullanmalıdır. (** NEREDE> 50 ve 'km' <100 **) –

cevap

0

, ayrıca, aşağıda gibi Sorgunuzla kolaylaştırabilirsiniz

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;