9
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';

私のSQLで何が間違っていますか? 問題はにあると思いますが、IF EXIST行で使用する方法がわかりませんでした。

4

1 に答える 1

15

テーブルから行を削除する場合、使用する必要はありません。句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';

.*`` (the columns) to be deleted - you'll just needまた、```#__menu DELETE FROM...`を指定する必要はありません。構文の詳細については、こちらをご覧ください。

于 2012-10-12T13:16:18.377 に答える