mysql - MySQL可以通过比较函数排序吗?

标签 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 结果集吗?

最佳答案

声明此函数是确定性的

 CREATE DETERMINISTIC FUNCTION ...

而且,声明时不要撒谎。确保它确实是确定性的。也就是说,确保对于相同的输入,每次的结果都是相同的。

然后它应该可以工作。

关于mysql - MySQL可以通过比较函数排序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41313124/

相关文章:

PHP 多服务器 session

mysql - 如何从mysql中的字母数字字符串中提取数字部分?

php - 使用 php echo 语句构建 JSON

mysql - go - 如何使用 gorp select 获取空界面

MySQL、GROUP_CONCAT 和 GROUP BY

mysql - MySQL 查询无结果

mysql - Go 的连续 MySQL 查询在某个时间点后变得更慢

mysql - 将 CSV 导入到 MySQL 中的临时表

mysql - SQL 查询 - 打印同一行中一个表的最小值和最大值

mysql - 存储语言 (utf8_general_ci)