DELETE IF EXIST `#__menu`.*
FROM `#__menu`
LEFT JOIN `#__extensions` ON `#__extensions`.`name` = 'com_view'
WHERE `#__menu`.`component_id` = `#__xtensions`.`extension_id`
AND `#__menu`.`alias` = 'view-sites' AND `#__menu`.`path` = 'view-sites' AND `#__menu`.`title` = 'View sites';
Run Code Online (Sandbox Code Playgroud)
我的sql有什么问题?我认为问题在于IF EXIST,但我无法弄清楚如何在行上使用它.
new*_*rey 13
当您从表中删除行时,您不需要使用IF EXISTS- 您正在使用WHERE子句,因此如果它存在 - 它将被删除.
尝试将您的查询更改为:
DELETE
FROM `#__menu`
LEFT JOIN `#__extensions` ON `#__extensions`.`name` = 'com_view'
WHERE `#__menu`.`component_id` = `#__xtensions`.`extension_id`
AND `#__menu`.`alias` = 'view-sites' AND `#__menu`.`path` = 'view-sites' AND `#__menu`.`title` = 'View sites';
Run Code Online (Sandbox Code Playgroud)
此外,您不需要指定```#__menu .*`` (the columns) to be deleted - you'll just needDELETE FROM ...`.有关语法的更多信息,请查看此处.