不带引号的MySQL IN子句

不带引号的MySQL IN子句,mysql,Mysql,我有以下简单的MySQL查询,返回0个结果: SELECT d.name FROM document d WHERE 10 IN (d.categories) “类别”是varchar类型,包含例如“10,20,30” 当我直接输入值时,它会工作并返回一个结果: SELECT d.name FROM document d WHERE 10 IN (10,20,30) 我怀疑MySQL用这样的东西替代了d.documents,这当然不是我想要的: SELECT d.name FROM docu

我有以下简单的MySQL查询,返回0个结果:

SELECT d.name FROM document d WHERE 10 IN (d.categories)
“类别”是varchar类型,包含例如“10,20,30”

当我直接输入值时,它会工作并返回一个结果:

SELECT d.name FROM document d WHERE 10 IN (10,20,30)
我怀疑MySQL用这样的东西替代了d.documents,这当然不是我想要的:

SELECT d.name FROM document d WHERE 10 IN ("10,20,30")

什么是合适的解决方法?

当您提供的值为“10,20,30”时,它将被视为一个单独的值,而不是您预期的三个不同的值。要使该值成为三个不同的值,需要在MySQL中使用该函数


另外,我建议您仔细阅读以下内容:

当您提供的值为“10,20,30”时,它将被视为单个值,而不是您预期的三个不同值。要使该值成为三个不同的值,需要在MySQL中使用该函数

另外,我建议您使用以下线程:

是,在设置中查找:

SELECT d.name FROM document d WHERE find_in_set(10, d.categories) > 0 
是,在查找集合中查找查找:

SELECT d.name FROM document d WHERE find_in_set(10, d.categories) > 0