+-

我需要以下列方式执行选择查询:
select * from my_table where id NOT IN (comma_delimited_string);
实现这一目标的正确方法是什么?
考虑到我控制发送字符串的客户端代码,是否有更好的方法? (该字符串将容纳大约30个id,所以我试图避免发送30个参数,每个id一个).
谢谢你们
最佳答案
您可以使用MySQL
FIND_IN_SET功能:
SELECT *
FROM my_table
WHERE FIND_IN_SET(id, comma_delimited_string) = 0
附录:请注意,上面的查询不可优化,因此如果你有id的索引,MySQL将不会使用它.你必须决定使用FIND_IN_SET的相对简单性是否值得进行潜在的性能损失(我说潜在的因为我不知道id是否被编入索引,或者你的表是否足够大以至于这是一个问题).
点击查看更多相关文章
转载注明原文:MySql选择IN子句字符串逗号分隔 - 乐贴网