mysql–SQL– 按语句排序

mysql–SQL– 按语句排序,第1张

概述我有这样的表:table A id name email 1 test1 ex@ex.com 2 test2 ex@ex.com 3 test3 ex@ex.com 4 test4 .... 5 test5 .... table B id catA catB year member 1 false true

我有这样的表:

table AID name   email1  test1  ex@ex.com2  test2  ex@ex.com3  test3  ex@ex.com4  test4   ....5  test5   ....table BID catA    catB   year member 1  false   true   2011  22  true    false  2011  33  fals    true   2010  5

我想获得表A中的每一行并按以下方式对其进行排序

FirsT,get user 2 (current year,based on table B)SECOND,get user 3 (current year,based on table B)after that get users that is in table Bafter that get all other users.

我知道我可以拥有特定的sql来获取前两个用户,而且只是
休息.但是,我不能用一个很好的ORDER by语句来获取它们吗?像限制第一顺序语句只是影响第一行…最佳答案像这样的东西?

select A.ID,A.name,A.email,B.catA,B.catB,B.yearfrom Ajoin B on A.ID = B.memberORDER BY B.year DESC,(B.member IS NOT NulL) DESC

首先按表B中的年份字段对所有结果进行排序,这将获得2011年,2010年等等…表B中未列出的任何成员将具有空年份并排序到列表的底部.接下来排序由B.member不为null – MysqL将此布尔结果强制转换为整数1或0,可以对其进行排序,因此按降序排序以使所有1(非空B.members)排序优先. 总结

以上是内存溢出为你收集整理的mysql – SQL – 按语句排序全部内容,希望文章能够帮你解决mysql – SQL – 按语句排序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/1168618.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-01
下一篇2022-06-01

发表评论

登录后才能评论

评论列表(0条)

    保存