SELECT * FROM table WHERE classid IN (199,200,201...........有600多个)
创建一个临时表,表内的数据为in里面的数据,并将该列设置为PK,
然后用左连接就OK了~~
比如
CREATE TABLE name1 (col1 int not null primary key)
然后把那些in的数据放这里面去
然后select tb1.* from table tb1 left join name1 tb2 on tb1.classid = tb2.col1
数据库in的参数是有限制的吧,最好看下官方文档对in的限制个数,如果in的参数固定,好将参数放到表中,通过关联查询去搞
这里有个参考的地址,你可以看看
https://blog.csdn.net/pengyufight/article/details/77523404
先子查询再连接查询,加上索引肯定会好很多。
如果传进来的是一个参数列表的话 ,那么可以通过遍历的方式,循环来查。
同意加参数进行限制查询,一次查询太多,页面加载会很慢
SELECT * FROM table WHERE classid between 199 and 600 是连续的就用这个
in太多内容的话,,建议创建临时表,,然后关联查询,查询完毕后把临时表删掉
使用exists比较好