如果一列具有特定值,并且如果另一列不是所提供的任何值(多个值),我想删除一行,但是我得到一个错误,说我的sql语法有问题。
代码:
$q = "DELETE FROM product_attributes WHERE product_id='$mpa' AND attribute_id NOT IN '$val_ids'";
$r = mysqli_query($dbc, $q);
这是$q
在回显时的样子:
DELETE FROM product_attributes WHERE product_id='2' AND attribute_id NOT IN '5,6'
答案 0 :(得分:0)
更改查询
$q = "DELETE FROM product_attributes WHERE product_id='$mpa' AND attribute_id NOT IN ($val_ids)";
您的查询必须与
类似 DELETE FROM product_attributes WHERE product_id='2' AND attribute_id NOT IN (5,6)
NOT IN
的正确形式
NOT IN (values)
您将获得更多详细信息here
答案 1 :(得分:0)
当值为CSV格式时,您需要使用FIND_IN_SET
。
$val_ids = "5,6";
$q = "DELETE FROM product_attributes
WHERE product_id='$mpa'
AND FIND_IN_SET( attribute_id, '$val_ids' )=0";
$r = mysqli_query($dbc, $q);
请参阅: