我有两个表,movies
并且categories
,我首先按类别ID获取有序列表,然后按名称获取.
影片表有三列,ID,Name和CategoryID.类别表2包含列,ID和名称.
我尝试了类似下面的内容,但它没有用.
var movies = _db.Movies.OrderBy( m => { m.CategoryID, m.Name })
Run Code Online (Sandbox Code Playgroud) 我试图在SQL中以不同的方向排序多个列.column1
将按降序排序,并按column2
升序排序.
我怎样才能做到这一点?
我相信这将是一个相对简单的.
我有一个LINQ查询,我想按最近创建的日期排序.
看到:
var itemList = from t in ctn.Items
where !t.Items && t.DeliverySelection
orderby t.Delivery.SubmissionDate descending
select t;
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
var itemList = (from t in ctn.Items
where !t.Items && t.DeliverySelection
select t).OrderByDescending();
Run Code Online (Sandbox Code Playgroud)
但这会给出一个错误:
方法'OrderByDescending'的重载不带0参数
从我所读到的,我很确定我做的第一种方式应该有效.我已经尝试将降序改为升序只是为了看它是否做了什么,但它保持不变.
如果有人能够查看查询并查看我是否做错了什么,我将不胜感激.谢谢 :)
我有一个带有日期时间字段的SQL表.有问题的字段可以为null.我有一个查询,我希望结果按日期时间字段按升序排序,但是我想要在列表末尾的日期时间字段为空的行,而不是在开头.
有没有一种简单的方法来实现这一目标?
目前我在声明中做了一个非常基本的OrderBy.
SELECT * FROM tablename WHERE visible=1 ORDER BY position ASC, id DESC
Run Code Online (Sandbox Code Playgroud)
这个问题是'position'的NULL条目被视为0.因此,位置为NULL的所有条目都出现在1,2,3,4之前.例如:
NULL, NULL, NULL, 1, 2, 3, 4
Run Code Online (Sandbox Code Playgroud)
有没有办法实现以下排序:
1, 2, 3, 4, NULL, NULL, NULL.
Run Code Online (Sandbox Code Playgroud) 我有一个看起来像这样的查询:
SELECT article FROM table1 ORDER BY publish_date LIMIT 20
ORDER BY如何工作?它会订购所有记录,然后获得前20个记录,还是会得到20个记录并按publish_date
现场订购?
如果它是最后一个,你不能保证真正得到最近的20篇文章.
这里有很多类似的问题,但我认为没有充分回答这个问题.
我会从当前最流行的问题继续,并使用他们的例子,如果这没关系.
此实例中的任务是获取数据库中每个作者的最新帖子.
示例查询产生不可用的结果,因为它并不总是返回的最新帖子.
SELECT wp_posts.* FROM wp_posts
WHERE wp_posts.post_status='publish'
AND wp_posts.post_type='post'
GROUP BY wp_posts.post_author
ORDER BY wp_posts.post_date DESC
Run Code Online (Sandbox Code Playgroud)
目前接受的答案是
SELECT
wp_posts.*
FROM wp_posts
WHERE
wp_posts.post_status='publish'
AND wp_posts.post_type='post'
GROUP BY wp_posts.post_author
HAVING wp_posts.post_date = MAX(wp_posts.post_date) <- ONLY THE LAST POST FOR EACH AUTHOR
ORDER BY wp_posts.post_date DESC
Run Code Online (Sandbox Code Playgroud)
不幸的是,这个答案简单明了,并且在很多情况下产生的结果不如原始查询那么稳定.
我最好的解决方案是使用表单的子查询
SELECT wp_posts.* FROM
(
SELECT *
FROM wp_posts
ORDER BY wp_posts.post_date DESC
) AS wp_posts
WHERE wp_posts.post_status='publish'
AND wp_posts.post_type='post'
GROUP BY wp_posts.post_author
Run Code Online (Sandbox Code Playgroud)
我的问题是一个简单的问题: 无论如何在分组之前订购行而不诉诸子查询?
编辑:这个问题是另一个问题的延续,我的情况细节略有不同.您可以(并且应该)假设还有一个wp_posts.id,它是该特定帖子的唯一标识符.
如何按两列对MySQL表进行排序?
我想要的是按最高评分排序的文章,然后是最近的日期.作为一个例子,这将是一个示例输出(左#是评级,然后是文章标题,然后是文章日期)
50 | This article rocks | Feb 4, 2009 35 | This article is pretty good | Feb 1, 2009 5 | This Article isn't so hot | Jan 25, 2009
我正在使用的相关SQL是:
ORDER BY article_rating, article_time DESC
Run Code Online (Sandbox Code Playgroud)
我可以按其中一种排序,但不能同时排序.
我陷入了一个简单的任务.我只需要订购来自此次通话的结果
$results = Project::all();
Run Code Online (Sandbox Code Playgroud)
Project
模特在哪里 我试过这个
$results = Project::all()->orderBy("name");
Run Code Online (Sandbox Code Playgroud)
但它没有用.从表中获取所有数据并获取它们的更好方法是哪种?
我想运行此查询:
SELECT DISTINCT ON (address_id) purchases.address_id, purchases.*
FROM purchases
WHERE purchases.product_id = 1
ORDER BY purchases.purchased_at DESC
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
PG ::错误:错误:SELECT DISTINCT ON表达式必须与初始ORDER BY表达式匹配
添加address_id
为第一个ORDER BY
表达式会使错误无效,但我真的不想添加排序address_id
.是否可以不通过订购address_id
?
sql-order-by ×10
mysql ×4
sql ×4
linq ×2
c# ×1
distinct-on ×1
eloquent ×1
group-by ×1
laravel ×1
laravel-4 ×1
postgresql ×1
sorting ×1
sql-limit ×1