我有一个数据库表,我需要改变一个基于另一个字段。每个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字段。 –