请帮助。我的眼睛发麻。我的身体虚弱。
尝试#9432
从此答案中选出 MySQL delete multiple rows in one query conditions unique to each row
DELETE FROM `productimages` WHERE (`ID`,`imageURL`)
(179,'http://www.example.com/example1.jpg')
(179,'http://www.example.com/example2.jpg')
(179,'http://www.example.com/example3.jpg')
(179,'http://www.example.com/example4.jpg')
(179,'http://www.example.com/example5.jpg'))
失败。
#1064-您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以获取在'(((179,'https://。。
参考我的存档,于02/14/96-尝试#387,我发现您不能在一个查询中使用多个WHERE
子句。我接下来尝试了
尝试#837
DELETE FROM `productimages` (WHERE `productID` = 179 AND `imageURL` = 'http://www.example.com/example1.jpg')
(AND `productID` = 179 AND `imageURL` = 'http://www.example.com/example2.jpg')
(AND `productID` = 179 AND `imageURL` = 'http://www.example.com/example3.jpg')
(AND `productID` = 179 AND `imageURL` = 'http://www.example.com/example4.jpg')
(AND `productID` = 179 AND `imageURL` = 'http://www.example.com/example5.jpg')
(AND `productID` = 179 AND `imageURL` = 'http://www.example.com/example6.jpg')
#1064-您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以在'(WHERE'productID'= 179 AND'imageURL'='https://。。。
附近使用正确的语法
最近一次尝试,我最近的尝试:
尝试#10473
DELETE FROM `productimages`
WHERE `productID` = 179
AND `imageURL` = 'http://www.example.com/example1.jpg'
AND `imageURL` = 'http://www.example.com/example2.jpg'
AND `imageURL` = 'http://www.example.com/example3.jpg'
AND `imageURL` = 'http://www.example.com/example4.jpg'
AND `imageURL` = 'http://www.example.com/example5.jpg'
AND `imageURL` = 'http://www.example.com/example6.jpg'
难以形容的喜悦。查询成功。
仔细观察...
0行受影响。 (查询耗时0.0128秒。)
再次失败。
有人到这为止吗? 您会以为会有手册或其他内容。
答案 0 :(得分:1)
可以检查带有 const ns = Namespace.createFromConnectionString(connectionString);
const client = ns.createQueueClient(queueName);
const receiver = client.getReceiver();
receiver.receive(onMessageHandler, onErrorHandler, { autoComplete: false });
条件的元组的值。您只是语法错误。
语法如下:
IN
这是一种非常灵活的过滤记录的方法,适用于元组中有几个不同的DELETE FROM `productimages`
WHERE (`productID`,`imageURL`) IN (
(179,'http://www.example.com/example1.jpg'),
(179,'http://www.example.com/example2.jpg'),
(179,'http://www.example.com/example3.jpg'),
(179,'http://www.example.com/example4.jpg'),
(179,'http://www.example.com/example5.jpg')
)
的情况。但是,效率将随着列表中元组的数量而降低,并最终达到系统限制。要处理非常大的列表,您最好考虑使用可以简单地加入的临时表。
答案 1 :(得分:0)
问题在于,在您的WHERE
子句中,您要求同时删除id是一个值和的图片网址,同时是其他所有值< / strong>。
您需要对OR
的每个值使用imageURL
:
DELETE FROM `productimages` WHERE `productID` = 179 AND (
`imageURL` = 'http://www.example.com/example1.jpg'
OR `imageURL` = 'http://www.example.com/example2.jpg'
OR `imageURL` = 'http://www.example.com/example3.jpg'
OR `imageURL` = 'http://www.example.com/example4.jpg'
OR `imageURL` = 'http://www.example.com/example5.jpg'
OR `imageURL` = 'http://www.example.com/example6.jpg'
)
您还可以使用IN
运算符:
DELETE FROM `productimages`
WHERE `productID` = 179 AND `imageURL` IN (
'http://www.example.com/example1.jpg',
'http://www.example.com/example2.jpg',
'http://www.example.com/example3.jpg',
...
)
也:第一个不起作用的原因是因为您缺少括号和逗号。
DELETE FROM `productimages` WHERE (`ID`,`imageURL`) (
(179,'http://www.example.com/example1.jpg'),
(179,'http://www.example.com/example2.jpg'),
(179,'http://www.example.com/example3.jpg'),
(179,'http://www.example.com/example4.jpg'),
(179,'http://www.example.com/example5.jpg'),
)