• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

SQL的请问

mysql 搞代码 7年前 (2018-05-31) 91次浏览 已收录 0个评论

SQL的请教
php开发,例如原来是循环一个数组来得到结果

foreach 
SELECT * FROM test WHERE ID=$id;

这样根据数组的元素多少需要多次查询

后来我改成了

SELECT * FROM test WHERE ID IN($id);

这样只需要执行一次查询就可以返回结果.我想知道是否有更好或者更正确的查询方法.thx.

——解决方案——————–
这方法就挺好
——解决方案——————–
也可以将$id中的内容存入表中,与工作表连接
——解决方案——————–
select * from a inner join lsb b on a.id=b.id
在ID上建立索引
IN也可以
——解决方案——————–
遍历数组 也可以考虑把语句拼成这样
SELECT * FROM test WHERE ID=1
union
SELECT * FROM test WHERE ID=2
union
SELECT * FROM test WHERE ID=3
——解决方案——————–
你的id很多吗 不多的话用union all 连接查询也可以。

网上说对于索引列,union all 要快于or/in , 否则or/in 快于union all 自己测试便知道。
——解决方案——————–
你的方法已经是最好的了。 in (1,2,3..)

不需要做其它改进了,你的ID应该是主键吧,如果这样则不需要再创建索引了。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:SQL的请问

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址