php mysql更新sku不在数组中的行

标签 php mysql arrays mysqli

我有一个包含大约 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/

相关文章:

php 从数组形式验证

javascript - 打印没有逗号分隔符的数组(对象?)

php - 如何将数组中的 id 值替换为存储在另一个数组中的实际值?

PhpStorm 不会解析包含使用常量

java - 如何将php客户端连接到java webservice?

SELECT 语句中的 MySQL 存储过程变量

php - codeigniter 中的 MLM 树结构

php - SQL - fatal error : Call to a member function bind_param() on a non-object

php - 处理大量数据

mysql列转为utf8_bin