2014-02-16 52 views
-2

那麼,這是一個問題的地獄。更新列如果兩個其他選擇的計算大於

這裏是一個什麼樣的方式,我想

$result = mysql_query(" SELECT (less, more) FROM tempTable WHERE id = '$id' "); 
    $row = mysql_fetch_row($result); 

    if(($row[1] - $row[0])/75 <= 1.5) 
    { 
     INSERT INTO tempTable (payValue) VALUES ('$ammount') WHERE id = '$user';   
    } 

問題是,是否有可能使這兩個查詢之一嗎?

+0

你爲什麼不嘗試一下,看看? –

+0

我的意思是,這工作,但我想知道是否有可能使只有一個查詢該全怪物 – user3316068

回答

1

是的,你可以在一個聲明中做到這一點:

INSERT INTO tempTable (payValue) 
    SELECT $ammount 
    FROM tempTable 
    WHERE id = '$id' and (more - less)/75 <= 1.5; 

編輯:

好了,這可能是另一種情況,其中一個insert確實應該是一個update

UPDATE tempTable 
    set payValue = $ammount 
    WHERE id = '$id' and (more - less)/75 <= 1.5; 

當你想添加新的時使用insert。當您想要更改現有行的值時,請使用update

如果你希望另一行,那麼這將是這樣的:

INSERT INTO tempTable (id, payValue) 
    SELECT id, $ammount 
    FROM tempTable 
    WHERE id = '$id' and (more - less)/75 <= 1.5; 
+0

好吧,如果我把 'INSERT INTO不是Temptable(payValue) 選擇85 FROM不是Temptable WHERE ID = 0和(更多 - 少)/ 75 <= 1.5; ' in the left pannel in:http://sqlfiddle.com/#!2/960a1/1 我得到一個錯誤(這可能是由於SQLFiddle而不是MySQL本身): Field'id'doesn'噸有一個默認值 – user3316068

+0

這個技巧。今天兩次,謝謝戈登!你明確地做了我的一天! – user3316068

相關問題