我需要以下列方式执行选择查询:
select * from my_table where id NOT IN (comma_delimited_string);
Run Code Online (Sandbox Code Playgroud)
实现这一目标的正确方法是什么?
考虑到我控制发送字符串的客户端代码,是否有更好的方法?(该字符串将容纳大约30个id,所以我试图避免发送30个参数,每个id一个).
谢谢你们
Ed *_*bbs 30
你可以使用MySQL FIND_IN_SET函数:
SELECT *
FROM my_table
WHERE FIND_IN_SET(id, comma_delimited_string) = 0
Run Code Online (Sandbox Code Playgroud)
附录:请注意,上面的查询不可优化,因此如果您有idMySQL 索引将不会使用它.你必须决定使用的相对简单性FIND_IN_SET是否值得潜在的性能损失(我说潜力因为我不知道是否id被索引或者你的表是否足够大以至于这是一个问题).
| 归档时间: |
|
| 查看次数: |
9604 次 |
| 最近记录: |