MySQL删除多行(如果存在)
mysql
MySQL删除多行(如果存在),mysql,Mysql,首先,谢谢你和我分享你的经验和浪费时间。我在许多线程中搜索,但仍然找不到我正在寻找的答案。好吧,让我们进入
MySQL删除多行(如果存在) mysql MySQL删除多行(如果存在),mysql,Mysql,首先,谢谢你和我分享你的经验和浪费时间。我在许多线程中搜索,但仍然找不到我正在寻找的答案。好吧,让我们进入问题。我如何编写一个MySQL语句,在不同的表中查找结果mssql 删除,如果找到合适的,它将被删除。这真的很难解释,所以我认为更好的方法是举个例子DELETE FROM forum_threads, forum_comments, forum_categories USING forum_categories INNER JOIN forum_threads INNER JOIN forum_co 首先,谢谢你和我分享你的经验和浪费时间。我在许多线程中搜索,但仍然找不到我正在寻找的答案。好吧,让我们进入问题。我如何编写一个MySQL语句,在不同的表中查找结果,如果找到合适的,它将被删除。这真的很难解释,所以我认为更好的方法是举个例子
上面的代码工作正常,但仅当三个表有一行时,在其他情况下,它返回零行受影响 所以,我想写一条语句,它从categories、threads和comments表中删除行,如果其中有一行的话。例1:论坛类别有一行,但论坛帖子和论坛评论没有,所以只从类别中删除。例2:论坛类别有一行,论坛线程有多行,但论坛评论没有任何行,因此从类别和线程中删除。例3:论坛类别没有任何行,但论坛线程有多行,论坛评论有多行,所以不要做任何事情 每个案例论坛类别只有一行,论坛线程和论坛评论可以从多个到零 我尝试使用左连接无效,或者我做得不对。 我的猜测是,简单地更改为左连接无效,因为WHERE子句创建了一个隐式内部连接。你必须用上。我不知道为什么MySQL甚至允许您编写这样的连接语法 尝试: 或: 此谓词看起来不正确:
如果
表中有一个外键引用
,我们希望该列将命名为
给定
表中名为
的列,它看起来更像是对
的外键引用 但是,除了从语句中可以推测的信息外,我们没有关于模式的任何信息 要在DELETE语句中使用“外部联接”,可以这样做:
请注意,如果存在外键引用,MySQL可能会尝试按导致抛出外键冲突/异常的顺序从表中删除行 也就是说,我们希望MySQL首先从
表中删除行,然后从
表中删除行,然后从
表中删除行。但是MySQL并没有给我们这个保证 解决这一问题的两种方法: 1) 用“
(编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |