2017-08-04 49 views
1

我有一個數據庫表,我需要改變一個基於另一個字段。每個id有兩個記錄「option_id」。每個都有一個sort_order。基於PHP的另一個修改MySQL字段

So for example: 
12345, 1 
12345, 2 

我需要能夠找到具有相同ID,並有一個用於SORT_ORDER 1的任何記錄,以及一個用於SORT_ORDER 2.然後,我需要的1 SORT_ORDER更改爲0,而SORT_ORDER 2到1.我想用PHP來做到這一點是可能的。

+0

無論「option_id」和「sort_order」是否該行都有一個ID字段來標識一個特定的行? – Progman

+0

例如使用原則的事件 – Vladislav

+0

不,除了每個都有兩條記錄的option_id之外,沒有ID字段。 –

回答

1

假設你可以自己處理連接字符串(我在這裏假設PDO)。我最近不得不做這樣的數字交換。

然後執行以下操作:

$sql = "SELECT * FROM table_name WHERE sort_order = 2"; 
    while($row = $results->fetch(PDO::FETCH_ASSOC)){ 

     $sql_1 = "UPDATE table set sort_order = 0 WHERE sort_order = 1 AND option_type_id = " . $row['option_id']; //then execute query 
     $sql_2 = "UPDATE table set sort_order = 1 WHERE sort_order = 2 AND option_type_id = " . $row['option_id']; //then execute query. 
    } 

的邏輯是,你找到匹配的記錄,更改1比0,然後更改爲2比1反其道而行之真的會弄亂記錄。

+0

*注意:我忽略了實際的查詢執行。我想你可以處理那部分。 – Difster

+0

謝謝!這讓我需要去哪裏。 –

相關問題