标签: sql-order-by

MySQL使用WHERE`id` IN指定确切的顺序(...)

是否有一种简单的方法可以通过WHERE idIN(...)子句分别订购MySQL结果?例:

SELECT * FROM articles WHERE articles.id IN (4, 2, 5, 9, 3)
Run Code Online (Sandbox Code Playgroud)

回来

Article with id = 4
Article with id = 2
Article with id = 5
Article with id = 9
Article with id = 3
Run Code Online (Sandbox Code Playgroud)

并且

SELECT * FROM articles WHERE articles.id IN (4, 2, 5, 9, 3) LIMIT 2,2
Run Code Online (Sandbox Code Playgroud)

回来

Article with id = 5
Article with id = 9
Run Code Online (Sandbox Code Playgroud)

更新:更具体地说,我想避免篡改括号中的数据WHERE articles.id IN (4, 2, 5, 9, 3),因为这些ID是动态的并且是自动排序的.

mysql sql-order-by in-clause

8
推荐指数
2
解决办法
1万
查看次数

当没有使用"order by"子句时,Oracle SQL以任意方式返回行

也许有人可以向我解释这一点,但是当从Oracle查询数据表时,如果存在密钥的多个记录(比如客户ID),那么如果没有隐含的"order by",那么该客户首先出现的记录可能会有所不同.声明通过说替代字段(例如事务类型)来强制执行订单.因此,在同一个表上运行相同的查询可能会产生与10分钟前不同的记录顺序.

例如,一次运行可以产生:

Cust_ID,Transaction_Type
123 A
123 B.

除非使用"Transaction by Transaction_Type"子句,否则Oracle可以在下次运行查询时随意返回以下结果:

Cust_ID,Transaction_Type
123 B
123 A.

我想我的印象是Oracle中有一个数据库默认的行排序(可能)反映了磁盘介质上的物理排序.换句话说,任意顺序是不可变的,并且在重新运行查询时将保证相同的结果.

这是否与优化器有关,以及它如何决定最有效地检索数据的位置?

当然,编程视角下的最佳实践是强制要求任何顺序,我对这种行为感到有点不安.

sql oracle rows sql-order-by

8
推荐指数
5
解决办法
9102
查看次数

当与orderby一起使用时,升序关键字是否纯粹为了清晰而存在?

如果我做一个查询,订购如下的元素,我得到升序.

var i = from a in new int[] { 1, 2, 3, 4, 5 }
        orderby a
        select a;
Run Code Online (Sandbox Code Playgroud)

如果我添加ascending关键字我得到相同的结果.

var i = from a in new int[] { 1, 2, 3, 4, 5 }
        orderby a ascending
        select a;
Run Code Online (Sandbox Code Playgroud)

我认识到ascending在第二个示例中添加关键字可以提高可读性,因为它不需要知道默认顺序orderby.

ascending关键字是否还有其他原因存在?

我也有兴趣知道为什么这个(突破性变化?)只是用于一个特定情况.

编辑:请参阅下面的评论,@ Joe指出,这不是一个重大变化,因为它是一个上下文关键字.

c# linq sql-order-by keyword

8
推荐指数
1
解决办法
123
查看次数

我们可以使用别名字段在mysql的order by子句中使用吗?

我们可以按顺序使用别名字段名吗?

例如.

SELECT id, name AS firstname
FROM users
ORDER BY firstname
Run Code Online (Sandbox Code Playgroud)

可能吗 ?当我尝试这个时,它出错了.

mysql sql-order-by

8
推荐指数
1
解决办法
8530
查看次数

mysql根据顺序更新一个带有int的列

可以说我有这些专栏

 uniqueID|Money|Quantity|MoneyOrder|QuantityOrder
1|23|12||
2|11|9||
3|99|100||
Run Code Online (Sandbox Code Playgroud)

我想要做的是更新MoneyOrderQuantityOrder基于值ORDER BY.

结果将是:

uniqueID|Money|Quantity|MoneyOrder|QuantityOrder
1|23|12|2|1
2|11|90|1|2
3|99|100|3|3
Run Code Online (Sandbox Code Playgroud)

我希望更新像标识列一样运行而不实际使其成为标识列.我知道我可以按'x'排序,订单就是结果,但我想生成一个报告,你可以逐行查看该项目.

这样的事情可能update mytable set Moneyorder = 'imnotsure' order by MoneyOrder asc吗?

mysql sql identity sql-order-by

8
推荐指数
2
解决办法
2万
查看次数

定义层次结构查询中子项的排序顺序

我想知道通过sequence_within_parent列在层次结构查询中对子项进行排序的Oracle SQL查询.

示例数据集和查询是:

create table tasks (task_id                 number
                    ,parent_id               number
                    ,sequence_within_parent number
                    ,task                    varchar2(30)
                    );
insert into tasks values ( 1, NULL, 0, 'Task 1');
insert into tasks values ( 2,    1, 1, 'Task 1.1');
insert into tasks values ( 3,    1, 2, 'Task 1.2');
insert into tasks values ( 4,    2, 2, 'Task 1.1.2');
insert into tasks values ( 5,    3, 1, 'Task 1.2.1');
insert into tasks values ( 6,    2, 1, 'Task 1.1.1');
insert into tasks values ( …
Run Code Online (Sandbox Code Playgroud)

sql oracle hierarchy sql-order-by

8
推荐指数
1
解决办法
4009
查看次数

如何使用join,update和order by编写查询?

我有2个表:tblRider和tbl_SCORE.tblRider拥有关于所有车手(竞争对手)的所有信息,并且在tbl_SCORE中保存了所有车手的得分.我想在tblRider中更新一列HalfPipeFinal.标准此列设置为0,但我想将其设置为1,以获得20个最佳分数的车手.(所以只有20名最佳车手可以参加决赛,而那些参赛选手中有1名参赛者是HalfPipeRider)

这是我的查询:

UPDATE tblRider
JOIN tbl_SCORE ON tblRider.riderID = tbl_SCORE.riderID
SET tblRider.HalfPipeFinal = 1
WHERE `gameID` =35
ORDER BY `score` DESC
limit 20;**
Run Code Online (Sandbox Code Playgroud)

如果我运行此查询,我会收到此错误:"UPDATE和ORDER BY的使用不正确"所以我去看了,显然你不能在连接中使用update和order by.所以我正在寻找另一种方法来编写这个查询而没有订单,但是我找不到它.

所有帮助表示赞赏.谢谢

mysql sql join sql-order-by sql-update

8
推荐指数
1
解决办法
4774
查看次数

在OrderBy Doctrine Querybuilder中使用IS NULL和COALESCE

我基本上有以下(我的)SQL查询

SELECT * FROM `address`
ORDER BY ISNULL(`company`), `company` ASC, COALESCE(`parent_id`, `address_id`), `parent_id` IS NOT NULL
Run Code Online (Sandbox Code Playgroud)

这项工作完美无缺

我的目标是以下排序输出

ID| PARENT_ID | COMPANY | NAME
1 | NULL      | A       | NULL
2 | 1         | A.A     | NULL
3 | 1         | A.B     | NULL
4 | NULL      | B       | NULL
5 | NULL      | C       | NULL
6 | NULL      | D       | NULL
7 | 6         | D.A     | NULL
8 | NULL      | NULL    | A …
Run Code Online (Sandbox Code Playgroud)

mysql doctrine sql-order-by symfony doctrine-orm

8
推荐指数
1
解决办法
9799
查看次数

MySQL选择具有相同条件值的顶行

我不知道如何标题这个问题.如果你有更好的话,请纠正我.

我有两个表,用户和帖子.

用户:

id | username | password | ...
Run Code Online (Sandbox Code Playgroud)

帖子:

id | author_id | title | content | ...
Run Code Online (Sandbox Code Playgroud)

现在我想列出"最活跃"的用户 - 撰写帖子最多的用户.具体来说,我想要top 10结果.

SELECT u.username, COUNT(p.id) AS count 
FROM Posts p, Users u
WHERE u.id=p.author_id
GROUP BY p.author_id 
ORDER BY count DESC
LIMIT 10;
Run Code Online (Sandbox Code Playgroud)

我可以得到预期的结果.但是,如果某些用户具有相同数量的帖子,则排名可能不是" 公平的 ".

例如,我可能得到如下结果:

User 1  | 14
User 2  | 13
...
User 9  | 4
User 10 | 4
Run Code Online (Sandbox Code Playgroud)

实际上,有几个用户有4帖子.

所以,top 10可能不完全是10结果.如何获得更" 公平 "的结果,其中包含有4 …

mysql sql select sql-order-by limit

8
推荐指数
1
解决办法
1987
查看次数

ORDER BY取决于参数导致错误

我有一个存储过程,它依赖于一个参数来启动一个命令:

DROP PROCEDURE [dbo].[GetUsersByClusterAndUserName]
  GO
CREATE PROCEDURE [dbo].[GetUsersByClusterAndUserName]
    @SortField [nvarchar] (256) = 'UserName',
    @SortOrder [int] = 0
AS
    SELECT * FROM [User] 
    ORDER BY
    CASE WHEN @SortOrder = 0 THEN
        CASE 
            WHEN @SortField = 'UserName' THEN User_UserName 
            WHEN @SortField = 'LastLoginDate' THEN User_LastLoginDate 
            WHEN @SortField = 'CreationDate' THEN User_CreationDate END
    END ASC,    
    CASE WHEN @SortOrder = 1 THEN
        CASE
            WHEN @SortField = 'UserName' THEN User_UserName 
            WHEN @SortField = 'LastLoginDate' THEN User_LastLoginDate
            WHEN @SortField = 'CreationDate' THEN [User_CreationDate] END
    END DESC …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-order-by

8
推荐指数
1
解决办法
70
查看次数