首页 > 解决方案 > 无论如何在sql中获得IN语句成功匹配索引?

问题描述

所以我有这个 SQL 请求:

SELECT * 
FROM Datas 
WHERE value IN (20,10,50,100,40)

我想知道是否可以在 IN 语句的数组中获取匹配的索引。

例如,请求将返回值为 20 的行,但我想获得 0,即 IN 语句数组中 20 的索引。

标签: mysqlsql

解决方案


如果您可以将此数组转换为逗号分隔的字符串,'20,10,50,100,40'则可以使用以下函数FIND_IN_SET()

SELECT FIND_IN_SET(value, '20,10,50,100,40') - 1
FROM Datas 

我从函数的结果中减去1,因为您似乎想要0基于结果的结果。


推荐阅读