mysql删除语法与select有何不同?

时间:2010-12-08 03:41:11

标签: mysql sql mysql-error-1064 sql-delete

此:

SELECT * 
  FROM tbl_playlists, tbl_playlistsongs 
 WHERE tbl_playlists.playlist_id = tbl_playlistsongs.playlist_id 
   AND tbl_playlists.playlist_id = 1

......没问题。但是:

DELETE from tbl_playlists, tbl_playlistsongs 
 WHERE tbl_playlists.playlist_id = tbl_playlistsongs.playlist_id 
   AND tbl_playlists.playlist_id = 1

...说我有语法错误。除了SELECT * vs DELETE之外,它们是相同的。它对我来说仍然具有完美的逻辑意义..但我必须遗漏一些东西!

1 个答案:

答案 0 :(得分:4)

传统SQL不支持多表删除,但MySQL 支持。这意味着您使用的是MySQL特定语法:

DELETE pl, pls
  FROM TBL_PLAYLISTS pl
  JOIN TBL_PLAYLISTSONGS pls ON pls.playlist_id = pl.playlist_id
 WHERE pl.playlist_id = 1

参考: