我需要根据货币订购交易.但是我需要实现一个自定义订单,这使得美元始终位于顶部,其余的应该按顺序排序.
例如 :
应按如下排序:
有一个简单的方法来处理这个?
我已经阅读了MySQL ORDER BY RAND()函数的一些替代方法,但大多数替代方案仅适用于需要单个随机结果的位置.
有没有人知道如何优化返回多个随机结果的查询,例如:
SELECT u.id,
p.photo
FROM users u, profiles p
WHERE p.memberid = u.id
AND p.photo != ''
AND (u.ownership=1 OR u.stamp=1)
ORDER BY RAND()
LIMIT 18
Run Code Online (Sandbox Code Playgroud) 我有一个这样的数据库表:
id version_id field1 field2
1 1 texta text1
1 2 textb text2
2 1 textc text3
2 2 textd text4
2 3 texte text5
Run Code Online (Sandbox Code Playgroud)
如果你没有解决它,它包含一行的多个版本,然后是一些文本数据.
我想查询它并返回每个id的编号最大的版本.(所以仅在上面的第二行和最后一行).
我尝试使用group by by version_id DESC进行排序 - 但它似乎在分组后进行排序,所以这不起作用.
有人有任何想法吗?我不敢相信它无法完成!
更新:
想出来,这有用,但使用子查询:
SELECT *
FROM (SELECT * FROM table ORDER BY version_id DESC) t1
GROUP BY t1.id
Run Code Online (Sandbox Code Playgroud) 我如何在mysql中使用union和order?
select * from _member_facebook
inner join _member_pts
ON _member_facebook._fb_owner=_member_pts._username
where _member_facebook._promote_point = 9
ORDER BY RAND() limit 2
UNION ALL
select * from _member_facebook
inner join _member_pts
ON _member_facebook._fb_owner=_member_pts._username
where _member_facebook._promote_point = 8 limit 3
Run Code Online (Sandbox Code Playgroud)
给我错误
#1221 - Incorrect usage of UNION and ORDER BY
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮忙吗?
我不久前发现了这个,并且从那时起就一直在使用它; 然而,今天看着它,我意识到我并不完全理解为什么它有效.有人可以为我解释一下吗?
ORDER BY s.type!= 'Nails',
s.type!= 'Bolts',
s.type!= 'Washers',
s.type!= 'Screws',
s.type!= 'Staples',
s.type!= 'Nuts', ...
Run Code Online (Sandbox Code Playgroud)
如果我按s.type订购,则按字母顺序排序.如果我使用上面的示例,它使用与行位置相同的顺序.我不明白的是使用!=.如果我使用=它会以相反的顺序出现.我无法理解这个概念.
我会告诉我,使用=代替上面的!=将Nails放在第一位,但它没有,它把它放在最后.我想我的问题是:为什么我必须使用!=,not =在这种情况下?
我想按照下面列出的顺序(数字1-12)对以下数据项进行排序:
1 2 3 4 5 6 7 8 9 10 11 12
但是,我的查询 - 首先使用order by xxxxx asc第一个数字排序:
1 10 11 12 2 3 4 5 6 7 8 9
有什么技巧让它更合适吗?
此外,为了充分披露,这可能是字母和数字的混合(虽然现在不是),例如:
A1 534G G46A 100B 100A 100JE
等等....
谢谢!
更新:人们要求查询
select * from table order by name asc
Run Code Online (Sandbox Code Playgroud) 我有一个这样的表:
name date time
tom | 2011-07-04 | 01:09:52
tom | 2011-07-04 | 01:09:52
mad | 2011-07-04 | 02:10:53
mad | 2009-06-03 | 00:01:01
Run Code Online (Sandbox Code Playgroud)
我想要最早的名字:
SELECT *
ORDER BY date ASC, time ASC
GROUP BY name
Run Code Online (Sandbox Code Playgroud)
( - >不起作用!)
现在它应该先让我疯狂(早期约会)然后汤姆
但是GROUP BY name ORDER BY date ASC, time ASC先给我一个新的疯狂,因为它在它排序之前就已经分组了!
再次:问题是我无法按照日期和时间排序,因为GROUP BY必须在ORDER BY之前!
我想做这个:
var orderBy = "Nome, Cognome desc";
var timb = time.Timbratures.Include("Anagrafica_Dipendente")
.Where(p => p.CodDipendente == 1);
if(orderBy != "")
timb = timb.OrderBy(orderBy);
Run Code Online (Sandbox Code Playgroud)
是否有OrderBy可用的超载接受字符串参数?
我正在将我的开发环境从sqlite3切换到postgresql 8.4并且有最后一个障碍.
在我的原始中,我在辅助方法中有以下行;
result = Users.find(:all, :order => "name collate NOCASE")
Run Code Online (Sandbox Code Playgroud)
这提供了一个非常好的不区分大小写的搜索.我不能为postgresql复制这个.应该很容易 - 任何想法?
谢谢.
我需要找到每个作者的最新帖子,然后对结果进行分组,这样我每个作者只会发一个最新的帖子.
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)
这是正确地对输出进行分组,因此我每个作者只获得一个帖子,但是在分组后将结果排序,而不是在选择之前.