当对带有限制和ORDERBY的单个表使用delete语句时,它的工作正常

DELETE FROM test_users_table  ORDER BY test_users_table_cname DESC
LIMIT 5

我们还可以使用ORDER BY AND LIMIT选项..实现多表删除吗?

这是我正在使用的

  DELETE test_users_table, test_user_data_table FROM test_users_table 
    JOIN test_user_data_table 
    ON test_users_table.table1_id = test_user_data_table.table2_userid
    ORDER BY test_users_table.cname DESC
    LIMIT 5

对于多表,其抛出错误

===============>>#1 票数:2 已采纳

根据MySQL文档 ,这是从多个表中删除的语法:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
tbl_name[.*] [, tbl_name[.*]] ...
FROM table_references
[WHERE where_condition]

此外,它指出:

对于多表语法,DELETE从每个tbl_name中删除满足条件的行。 在这种情况下,不能使用ORDER BY和LIMIT。

因此,您可以从多个表中删除。 但是,您不能直接在其中使用LIMIT关键字。

您的查询假定的语义是什么? 该语句应该删除表A,表B的前5个条目还是每个表的5个条目? 此信息可能有助于重组查询。

  ask by atjoshi translate from so

未解决问题?本站智能推荐:

2回复

如何使用“ ORDER BY”和“ LIMIT”语句在MYSQL 5.1中进行多表更新

我有两个表Events和FixedPlace ////////////////////////////////////////////////// ////////////// //////////////////////////////////////////////////
2回复

使用ORDER BY和LIMIT在MySQL中求和

假设我有以下MySQL表: 我想知道最近销售日期前三天富士苹果的总销量(如变动总额)。 因此,在本例中,我是在04/01/14之前的3天内选择的总数量(即9)。 我进行了许多尝试,均未达到预期的结果: 我以为ORDER BY date DESC LIMIT 1,3可以通过
1回复

MySQL ORDER BY + LIMIT + OFFSET语句:如何抵消触发,然后仅使用ORDER BY进行排序

我有一个包含ID,NAME,PRICE和DATE列的表。 我试图编写一个分页样式的导航,因为表中有很多条目,因此查看整个SELECT的输出变得不舒服。 我已经写了以下请求: 仅在示例中,这可以正常工作。 当我尝试按价格对它进行排序时,似乎MYSQL首先使用ORDER BY对
2回复

在MySQL中使用LIMIT进行左联接子选择

我有3张桌子: SQLFiddle 我想为每个演员获得5个最频繁(最高clip_count )和最近更新(最新update_timestamp )标签。 我尝试的查询是: 问题在于,左联接子选择仅计算一次,并且仅从5个标记池中获取集合中每个结果的标记。 Kean
1回复

MYSQL-如何使用ORDER BY和LIMIT对列进行排序,然后按另一列对这些结果进行排序

我目前正在使用MYSQL查询,该查询使用公式来确定行的相似性,然后按行的差异对其进行排序。 该查询工作完美,但是现在我试图引入LIMIT,但遇到了麻烦。 我的原始查询如下。 现在,我介绍了一个LIMIT表达式和两个ORDER BY语句,它不能正常工作。 我的最终目标是像上面那样联接
1回复

在MySQL中使用JOINed ORDER子句进行分页

在对通过查询联接表构建的数据集进行分页时遇到一些麻烦。 我的产品表如下所示: 我的加入股票表如下所示: 我想对我的产品列表进行分页,但是,我希望将其排序如下: 首先,按sort_order 其次,最早与之关联的start_date 。 我最初从cu
3回复

在MYSQL中使用ORDER BY子句对数据进行排序

我的表格中有两种类型的交易: 1)One way relocation deal and 2)Regular deal 。我的db -Vehicles中有一个表。 现在,当用户选择One way relocation deal然后在db中时,将仅插入id,pickuplocation,r
1回复

在MySQL SELECT中使用LIMIT更改ORDER BY运算符会产生不一致的行集

我很惊讶今天从以下MySQL查询中发现不一致的结果: SELECT Research.Focus, Research.Media, Country.Name, GROUP_CONCAT(DISTINCT AskMethod.Name ORDER BY ResearchAskMethod.Me
3回复

在MySQL的数据库列中使用LIMIT进行SELECT查询

我有2张桌子: 我需要从n = user.credit的 消息中选择n条消息 。 我想执行查询的查询: 而应返回行01,02,03,04,但不是05年,06年。 我知道我不能写LIMIT u.credit但是想要这种行为,根据他们拥有的信用额度来限制每个用户获取的消息数(
1回复

使用join和limit删除mysql

我有这样的SQL查询: 但我得到错误....从mysql-doc我得到删除+加入+限制我会得到错误.... 但是我怎样才能改变我的代码呢? (全新的mysql和sql)。 如何更改我的代码? 限制要删除的行.... 也在phpmyadmin我得到 1064 -