我有一個數據庫表,我需要改變一個基於另一個字段。每個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來做到這一點是可能的。
我有一個數據庫表,我需要改變一個基於另一個字段。每個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來做到這一點是可能的。
假設你可以自己處理連接字符串(我在這裏假設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反其道而行之真的會弄亂記錄。
*注意:我忽略了實際的查詢執行。我想你可以處理那部分。 – Difster
謝謝!這讓我需要去哪裏。 –
無論「option_id」和「sort_order」是否該行都有一個ID字段來標識一個特定的行? – Progman
例如使用原則的事件 – Vladislav
不,除了每個都有兩條記錄的option_id之外,沒有ID字段。 –