mysql
  • sql
  • 2012-02-08 73 views 3 likes 
    3

    我不是一個SQL專家,並且一個快速的谷歌搜索沒有得到我太多(雖然我不認爲我使用最好的搜索短語)。希望你們能給我一些指導。MySQL:如果某些值更新列

    我在表中存儲一個數字的某個列。我想這個號碼被設置爲2,只有當它以前等於1。我不知道是否有可能避免這種情況:

    $val = mysql_fetch_row(mysql_query("SELECT columnA FROM tableName WHERE something = '$someValue')); 
    
    if($val[0] == 1) { .....UPDATE tableName SET columnA = 2....... } 
    

    是否可以直接查詢數據庫?像這樣的東西:SET columnA = 2 if columnA = 1

    +1

    實在是沒有必要把PHP邏輯到這一點,只是做這一切在一個MySQL的UPDATE語句所看到如下 – 2012-02-08 06:58:12

    回答

    11

    其實你正在尋找的查詢應該是:

    update tableName set columnA = 2 
    where columnA = 1 
    

    「如果」你提的其實是一個條件。這些條件在更新語句的where子句中設置。

    就是這樣:)

    +2

    LOL!我不知道爲什麼我沒有想到這個... – Xecure 2012-02-08 06:58:51

    3

    爲什麼不只是用條件進行更新?

    UPDATE tableName SET columnA = '2' WHERE columnA = '1' 
    

    這應該做你在找什麼

    3
    UPDATE tableName SET columnA = 2 WHERE columnA = 1 
    
    相關問題