MySQL可以通过比较函数进行排序吗?

时间:2016-12-24 12:09:04

标签: mysql

我有一个MySql函数,它定义了表行的排序,给定主键

CREATE FUNCTION CmpRows (a INT, b INT)
BEGIN
    IF ((SELECT foo FROM Bar WHERE id=a) etc...)
    THEN
        RETURN -1;
    ELSEIF (other stuff)
    THEN
        RETURN 1;
    ELSE
        RETURN 0;
    END IF;
 END

我可以让MySQL使用此函数对结果集进行ORDER BY吗?

1 个答案:

答案 0 :(得分:0)

声明此函数是确定性的

 CREATE DETERMINISTIC FUNCTION ...

而且,当你宣布它时,不要撒谎。确保它确实是确定性的。也就是说,确保每次输入的结果都相同。

然后它应该工作。