相关疑难解决方法(0)

如何按IN子句的顺序选择mysql行

例如我在表EMPLOYEE中:

(code, name)
(1, 'Jimmy')
(2, 'Albert')
(3, 'Michelle')
(4, 'Felix' )
Run Code Online (Sandbox Code Playgroud)

如果您这样做:(从EMPLOYEE中选择*)您将得到:

(1, 'Jimmy')
(2, 'Albert')
(3, 'Michelle')
(4, 'Felix' )
Run Code Online (Sandbox Code Playgroud)

如果您这样做:(从EMPLOYEE中选择*,您将获得(1,3,2,4)中的代码:

(1, 'Jimmy')
(2, 'Albert')
(3, 'Michelle')
(4, 'Felix' )
Run Code Online (Sandbox Code Playgroud)

如何按IN子句中的CSV值顺序获取它,原样如何?

(1, 'Jimmy')
(3, 'Michelle')
(2, 'Albert')
(4, 'Felix' )
Run Code Online (Sandbox Code Playgroud)

mysql sql sql-order-by

9
推荐指数
1
解决办法
4470
查看次数

使用带有散列值的 FIND_IN_SET 我的 sql 函数

我有以下查询:

SELECT url, url_hash from pages WHERE url_hash IN (SHA1('URL1'), SHA1('URL2'), SHA1('URL3'))
ORDER BY FIND_IN_SET(url_hash, "SHA1('URL1'), SHA1('URL2'), SHA1('URL3')")
Run Code Online (Sandbox Code Playgroud)

我会保持结果集的顺序与 IN 子句中参数的顺序相同。

我发现了这个问题

问题是 mysql 不知道如何解释一组 SHA1 函数,如果我将它们作为字符串传递,它们不会被正确计算,如果我传递给它们一个表达式(不带引号),我会收到以下错误:

OperationalError: (1582, "Incorrect parameter count in the call to native function 'FIND_IN_SET'")
Run Code Online (Sandbox Code Playgroud)

mysql sql find-in-set

1
推荐指数
1
解决办法
2709
查看次数

标签 统计

mysql ×2

sql ×2

find-in-set ×1

sql-order-by ×1