sql - 在 MySQL 的 `IN ()` 中使用逗号分隔的字符串

标签 sql mysql

如果用户定义的变量 @x 是一串以逗号分隔的数字,例如'1,2,4',有没有办法在 IN () 函数中使用它?

具体来说:

SET @x := '1,2,4';
SELECT * FROM t WHERE c IN (@x);

不选择 t 中 c 等于 1 或 2 或 4 的行。

最佳答案

您不能直接使用变量来执行此操作。根据您现在所拥有的,服务器正在尝试执行 select * form t where c in ('1,2,3'); ...这显然不是您想要的您正在检查 c 是否包含给定的单个字符串。

您必须根据列表生成动态 SQL 才能使其正常工作。

关于sql - 在 MySQL 的 `IN ()` 中使用逗号分隔的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4246615/

相关文章:

sql - 最好的 Oracle SQL 查询分析工具

mysql - 如何在 MySQL JOIN 中每行返回多个相关项?

php - mysql PHP 查询数组

php - 多阵列制图准备

mysql - Controller 文件已加载但类不存在?

sql - 如何读取PostgreSQL EXPLAIN, order : top down or bottom up?

php - 当子查询中存在空值时,Mysql 不返回任何值

sql - 带有 CASE 的 Postgres 自定义函数

mysql - 当 Golang 程序在进行数据库事务时终止,它可以回滚吗?

MYSQL - 获取父图像而不调整子图像大小