2017-04-19 19:47:21 3194次浏览 6条回答 0 悬赏 100 金钱

select * from td_xm where xmbh in (select xmbhs from td_xm where id = 56)和
select * from td_xm where xmbh in (20160024,20170003)
查询的结果不一样,第一个没数据,第二个有两条数据,这是什么原因造成的?其中select xmbhs from td_xm where id = 56值为20160024,20170003,就是id为56的xmbhs字段的值就是:20160024,20170003,以逗号隔开的

实在不明白in()到底这个时候如何理解??

最佳答案

  • cola 发布于 2017-04-20 11:11 举报

    in()参数是数组,(select xmbhs from td_xm where id = 56)查出来的是个字符串

    1 条回复
    回复于 2017-04-20 14:05 回复

    如果是数组 select * from td_xm where xmbh in (20160024,20170003)这个里面总不会是数组吧 莫非把a,b这种的自动转换为数组???

    in (20160024,20170003)是数组
    in ("20160024,20170003")这种才是字符串 不过这种写法不对

  • 回答于 2017-04-19 21:07 举报

    好好学习下数据库

  • 回答于 2017-04-20 08:35 举报

    in(这里是一个一维数组),前提是php环境,你那样会变成一个字符创'20160024,20170003',并非是你想的'20160024','20170003'

    3 条回复
    回复于 2017-04-20 15:42 回复

    谢谢 明白了

    回复于 2017-04-21 08:46 回复

    说的这么明白 都不是最佳

    回复于 2017-04-21 11:41 回复

    额 不要在意呀

    , 觉得很赞
  • 回答于 2017-04-20 10:41 举报

    xmbhs xmbh

  • 回答于 2017-04-20 15:20 举报
    • in()里面是字符串,第一个sql语句查询出来的数组,肯定不行.
    • select xmbhs from td_xm where id = 56的结果需要进行处理(implde函数),然后将结果放入语句select * from td_xm where xmbh in ($result),结果就跟第二个语句效果一样了
    1 条回复
    回复于 2017-04-20 15:42 回复

    谢谢 明白了

  • 回答于 2017-04-26 10:57 举报

    全场最佳哈哈,in里面就是数组,查询出来的结果没有分隔当成一个值了,

您需要登录后才可以回答。登录 | 立即注册
xyf90314
副总裁

xyf90314

注册时间:2015-03-04
最后登录:2023-03-13
在线时长:95小时23分
  • 粉丝21
  • 金钱5257
  • 威望40
  • 积分6607

热门问题