在MySQL中,如何定义自定义排序顺序。
为了尝试解释我想要考虑的表,请执行以下操作:
ID Language Text 0 ENU a 0 JPN b 0 DAN c
1 ENU d 1 JPN e 1 DAN f 2 etc... 在这里,我想返回按语言和升序ID排序的所有行,以便首先出现Language = ENU,然后是JPN,最后是DAN。
结果应为:a,d,b,e,c,f等。
这有可能吗?
MySQL有一个方便的函数FIELD(),它非常适合执行此类任务。
ORDER BY FIELD(Language,'ENU','JPN','DAN'), ID
但是请注意,
由于其他DBMS可能没有此功能,因此它使SQL的可移植性较差
当您的语言列表(或其他要排序的值)长得多时,最好有一个带有sortorder列的单独表,然后将其加入查询中进行排序。来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。