Mysql 在常量数组中选择

Mysql 在常量数组中选择,mysql,Mysql,在MySQL中,如何能够对常量值数组执行选择?类似于此: 选择['1','2','3']作为ID 其中所需输出为: +-----+ | ID | +-----+ | 1 | | 2 | | 3 | 可以使用联接生成一系列行 SELECT 1 AS ID UNION SELECT 2 UNION SELECT 3 对于少量数据,这种方法效果很好。不利的一面是,并没有索引来检查这些 对于这一点,临时表可能要好得多,因为至少任何针对这些值进行连接的SQL都可以使用索引 如果值来自有限

在MySQL中,如何能够对常量值数组执行
选择
?类似于此:

选择['1','2','3']作为ID

其中所需输出为:

+-----+
| ID  |
+-----+
| 1   |
| 2   |
| 3   |

可以使用联接生成一系列行

SELECT 1 AS ID UNION SELECT 2 UNION SELECT 3
对于少量数据,这种方法效果很好。不利的一面是,并没有索引来检查这些

对于这一点,临时表可能要好得多,因为至少任何针对这些值进行连接的SQL都可以使用索引

如果值来自有限的池,另一种可能性是,只需要有一个包含所有可能值的表,然后从中选择:-

SELECT ID 
FROM all_poss_values
WHERE ID IN (1,2,3)
或者使用生成的值范围(这会再次丢失索引的可用性):-


您是否考虑过使用
UNION
s?我希望使用大约20个值,因此,如果有一个解决方案比一个
UNION
s塔更简单,您会使用它:)您搜索过吗?这是为了什么?@GeorgeGarchagudashvili我想稍后将这些值用于
JOIN
s。我知道我可以只使用一个临时表,但我很好奇MySQL是否存在这样的语法。
SELECT 1 + units.i + tens.i * 10 AS ID
FROM (SELECT 0 AS i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) units,
(SELECT 0 AS i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) tens
WHERE 1 + units.i + tens.i * 10 IN (1,2,3)