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

怎么构建查询语句

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

如何构建查询语句
有两张表:
a:

SQL code

  id name 1  tom 2  terry ...  

欢迎大家阅读《怎么构建查询语句》,跪求各位点评,by 搞代码

b:

SQL code

  fid  ids 1    1,2 ...  

如果需要根据表b的ids列找出表a对应的name,可以:

SQL code

  select name from a where id in (select ids from b where fis = 1);  

问题是如果这样的话只能查找1=>tom,而不会出现terry。明显,mysql将上述查询语句的子查询表达成:

SQL code

  select name from a where id in ('1,2');  

子查询解释为字符串,最后合并成一组。","号后面的语句无法对应id,所以mysql简化成:

SQL code

  select name from a where id in ('1');  

因此永远只返回第一条记录,而不是第二条以后的记录。

我现在想问,查询语句应该怎么写才不会出现这种情况,而实在地解释成这样:

SQL code

  select name from a where id in (1,2);  

——解决方案——————–
select name from a where find_in_set (id ,(select ids from b where fis = 1))


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

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

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

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

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