加入收藏 | 设为首页 | 会员中心 | 我要投稿 商洛站长网 (https://www.0914zz.com/)- AI应用、CDN、边缘计算、云计算、物联网!
当前位置: 首页 > 数据库 > MySql > 正文

mysql SELECT IN后跟逗号分隔字段

发布时间:2021-01-17 06:20:44 所属栏目:MySql 来源:互联网
导读:我使用mySQL,我有一个成员表,其中包含一个BLOBcontacts字段,其中包含逗号分隔的其他成员ID列表:TABLE members: id_member = 1 firstname = John contacts (BLOB) = 4,6,7,2,5 我想通过一个查询检索个人“联系人”列表中的所有名字.我尝试了以下方法:SELECT

我使用mySQL,我有一个成员表,其中包含一个BLOB’contacts’字段,其中包含逗号分隔的其他成员ID列表:

TABLE members:
id_member = 1
firstname = 'John'
contacts (BLOB) = '4,6,7,2,5'

我想通过一个查询检索个人“联系人”列表中的所有名字.我尝试了以下方法:

SELECT firstname from members WHERE id_member IN ( SELECT contacts FROM members WHERE id_member = 1 );

它只返回一行,但是当我尝试时:

SELECT firstname from members WHERE id_member IN ( 4,5 );

它返回列表中的所有名字.我可以使用两个查询来实现这一点,但我想我会仔细检查是否有办法让它与一个简单,优雅的查询一起工作.

感谢阅读,任何帮助表示赞赏.
七月 最佳答案 你能改变这个数据库结构吗? contacts字段确实应该是一个相关的表而不是列.假设具有此结构的联系人表:

id_contact
id_member

然后你会使用EXISTS代替:

SELECT firstname from members m WHERE EXISTS (SELECT 1 FROM contacts c WHERE c.id_contact = m.id_member );

(编辑:商洛站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读