mysql – 筛选数组上具有列条件的行
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – 筛选数组上具有列条件的行,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1125字,纯文字阅读大概需要2分钟。
内容图文
![mysql – 筛选数组上具有列条件的行](/upload/InfoBanner/zyjiaocheng/893/35a4053877be4bdfaa57d230fc28df48.jpg)
我有一个表my_table:
id x_id type
--- ---- ----
1 31 a
2 14 b
3 31 c
4 12 c
5 31 b
6 12 c
7 14 a
我想返回所有行,其中x_id的类型符合数组arr中的所有元素.
编辑:但是,该数组中的实际值及其数量是未知的,但可能是列类型的值. arr中始终至少有一个值.
所以对于arr = [b,c],我应该得到以下结果:
id x_id type
--- ---- ----
3 31 c
5 31 b
我如何编写查询来获得这样的结果?
注意:我对sql命令并不熟悉,所以如果没有意义,请帮助我编辑我的问题.
解决方法:
select *
from my_table
where x_id in (select x.x_id
from (select x_id from my_table where type = 'b') x
join (select x_id from my_table where type = 'c') y
on x.x_id = y.x_id)
and type in ('b', 'c')
小提琴测试:http://sqlfiddle.com/#!2/f8601/2/0
这可能更符合变量(有一个变量用于保存’b’,’c’格式的类型列表,另一个变量用于保存类型的数量.有没有办法可以获得一个变量来保存变量中的变量数组为该值:’b’,’c’?
select *
from my_table
where x_id in (select x_id
from my_table
where type in ('b', 'c')
group by x_id
having count(distinct type) = 2)
and type in ('b', 'c')
小提琴:http://sqlfiddle.com/#!2/f8601/12/0
因此,您将使用()中的2类型变量(()中的变量)和保持计数的变量代替2.
内容总结
以上是互联网集市为您收集整理的mysql – 筛选数组上具有列条件的行全部内容,希望文章能够帮你解决mysql – 筛选数组上具有列条件的行所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。