如何解决MySQL Proc OrderBy Case不允许超过一列
我有一个过程,需要根据参数按不同的字段对查询进行排序。为了实现这一点,我为我的 ORDER BY
命令创建了一个简单的 case 语句,它在我添加第二个排序字段之前效果很好。我确定这只是一个语法问题,但我似乎无法找到有关此问题的任何信息。
ORDER BY
CASE _sort
WHEN 'random' THEN RAND()
WHEN 'latest' THEN u.updated,ut.sort
WHEN 'alpha' THEN u.pageTitle,ut.sort
ELSE ut.sort
END
ASC
LIMIT _limit;
将 ,ut.sort
添加到每个 WHEN
会引发错误。删除后,proc 工作正常。
解决方法
ORDER BY
CASE _sort WHEN 'random' THEN RAND()
WHEN 'latest' THEN u.updated
WHEN 'alpha' THEN u.pageTitle
ELSE 1
END,ut.sort
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。