这是我的伪查询:
SELECT col1, col2 FROM table WHERE number IN(number1,number2,number3);
例子
SELECT name, description FROM products WHERE 5 IN(category_id);
注意:让我们假设表中的行之一的category_id = 2,5,7
问题
如果行在逗号分隔集的开头有“5”,则我的查询有效,如下所示:5,2,7 但如果行以 5 以外的任何值开头,则相同的查询不会返回任何结果。
我尝试了各种场景,在我看来,当 mysql 遇到逗号时,它不再进一步检查逗号分隔数字中的匹配项。
我检查了所有有意义的内容,例如格式正确的逗号分隔字符串和排序规则。在这一点上让我很困惑。有什么解决办法吗?
请注意,我使用FIND_IN_SET()
过并且效果很好。但是,我仍然不满足于在IN()
不知道真正问题是什么的情况下放弃。为什么它在第一次遇到 fa 逗号时停止。