在 MySQL 中对数据进行排序时,ORDER BY 子句允许您自定义除默认升序或降序选项之外的排序顺序。一个常见的挑战是为列中的多个值定义特定的排序优先级。
问题:
考虑下表:
ID | Language | Text |
---|---|---|
0 | ENU | a |
0 | JPN | b |
0 | DAN | c |
1 | ENU | d |
1 | JPN | e |
1 | DAN | f |
我们如何按语言(首先是 ENU,其次是 JPN,最后是 DAN)然后按升序对该表进行排序ID?
答案:
MySQL 提供了 FIELD() 函数,可以实现自定义排序顺序。它接受一个值并检查其在指定列表中的位置。使用此函数,我们可以定义所需的排序优先级,如下所示:
ORDER BY FIELD(Language, 'ENU', 'JPN', 'DAN'), ID
此查询将按以下顺序返回数据:
a, d, b, e, c, f,等等
注意事项:
以上是如何在 MySQL 的 ORDER BY 子句中针对特定值自定义排序顺序?的详细内容。更多信息请关注PHP中文网其他相关文章!