当前位置: 首页 > 面试题库 >

如何从MySQL中的选择中删除?

郭盛
2023-03-14
问题内容

此代码不适用于MySQL 5.0,如何重写使其正常工作

DELETE FROM posts where id=(SELECT id FROM posts GROUP BY id  HAVING ( COUNT(id) > 1 ))

我想删除没有唯一ID的列。我会在大多数情况下添加唯一的一个ID(我尝试了in语法,它也不起作用)。


问题答案:

SELECT(子)查询返回结果 。因此,您需要使用IN,而不是=WHERE子句中使用。

此外,如该答案所示,您不能在同一查询中的子查询中修改同一表。但是,您可以SELECT然后DELETE在单独的查询中进行嵌套,也可以嵌套另一个子查询并为内部子查询结果添加别名(尽管看起来有些怪异):

DELETE FROM posts WHERE id IN (
    SELECT * FROM (
        SELECT id FROM posts GROUP BY id HAVING ( COUNT(id) > 1 )
    ) AS p
)

或使用Mchl建议的联接。



 类似资料:
  • 问题内容: 您好,有人可以告诉我此查询出了什么问题。 我得到的错误是 您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以获取在’(@json,’$ [*]’COLUMNS(name VARCHAR(40)PATH’$ .name’,’在第1行 仅出于信息目的,我使用TOAD作为工具将sql实例连接到云。 问题答案: 首先,在这种情况下,您无需在mysql中声明变量。只需使用“ SE

  • 问题内容: 我正在尝试使用CSS3 设置元素的样式。我在WebKit(Chrome / Safari)中获得了想要的结果,但是Firefox的运行效果不佳(我什至不担心IE)。我正在使用CSS3 属性,但是由于某些原因,我无法从Firefox中删除下拉图标。 这是我正在做的事的一个例子:http : //jsbin.com/aniyu4/2/edit 如您所见,我并没有尝试任何幻想。我只想删除默认

  • 问题内容: 我正在尝试做这样的事情: 好像MySQL不允许我在嵌套SELECT中使用。有什么建议吗? 问题答案: 您可能会收到此错误: 您应该能够使用MySQL的多表语法来做到这一点: 上面的查询应该可以工作,但是作为一般规则,我建议使用ANSI JOIN语法代替:

  • 问题内容: 在查看查询日志时,我看到一个没有解释的奇怪模式。 在几乎每个查询之后,我都有“从DUAL中选择1”。 我不知道这是从哪里来的,而且我当然没有明确地进行查询。 日志基本上如下所示: 有人遇到过这个问题吗? MySQL版本:5.0.51 驱动程序:使用JDBC的Java 6应用程序。mysql-connector-java-5.1.6-bin.jar 连接池:commons-dbcp 1.

  • 问题内容: 我能够同时获取mysql查询结果的值和行。 但是我在努力获得查询的单个输出。例如: 我需要显示结果。但是我没有得到结果。 我尝试了以下方法: 但是我没有成功显示(获取)实际值。 问题答案: 您需要使用关键字为聚合设置别名,以便从中进行调用

  • 问题内容: 我在数据库中有一系列值需要提取以创建折线图。因为我不需要高分辨率,所以我想通过从数据库中选择第5行来对数据进行重新采样。 问题答案: