我有一个包含大约 2500 个键的数组: 结构是这样的:
Array ( [0] => 452BA [1] => 7fDF-39r73 [2] => 263941)
我需要运行一个代码来更新我的 SQL 表中的所有行,其中字段“sku”的内容在我的数组中不存在。
所以沿着这些思路:
$sql = 'UPDATE `table` set status = "0" WHERE sku NOT IN (' . implode( ',', array_keys( $array) ) . ')';
最佳答案
您的查询不会正确,它就像 WHERE
子句中的单个值:
UPDATE `table` set status = "0" WHERE sku NOT IN ('452BA,7fDF-39r73,263941');
但是两边都需要引号,例如:
UPDATE `table` set status = "0" WHERE sku NOT IN ('452BA','7fDF-39r73','263941');
尝试这样:
$sql = 'UPDATE `table` set status = "0" WHERE sku NOT IN ("' . implode( '","', array_keys( $array) ) . '")';
关于php mysql更新sku不在数组中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36807314/