千家信息网

mysql查询结果怎么实现多列拼接查询

发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,这篇文章主要介绍"mysql查询结果怎么实现多列拼接查询"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"mysql查询结果怎么实现多列拼接查询"文章能帮助大家解
千家信息网最后更新 2025年02月23日mysql查询结果怎么实现多列拼接查询

这篇文章主要介绍"mysql查询结果怎么实现多列拼接查询"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"mysql查询结果怎么实现多列拼接查询"文章能帮助大家解决问题。

之前遇到过一个问题,mysql数据库中有两个表,一张地址表存放省市区等位置信息,另一张用户表里存在三个字段分别对应地址表中的三个位置信息(很奇怪的表格式),如图:

现在需要查询user表中的数据,并根据user表中省市区的值,在地址表中查询到对应的位置信息(name)并显示出来;

本人对sql并不精通,所以捋了一个大致逻辑

首先要得到user表的省市区三个字段的值,我们一般的查询方式是

SELECT province,city,district FROM `user` WHERE id =1;

这个比较简单,得到的结果为一行三列的值,如图:

这是正常的写法,之后使用这个结果为查询条件,去查询地址表中的name即可.

当然想法似乎不错,但这个查询出来的结果是分为三段的,并不利于我们后面的查询,总不能取出结果后再进行处理再查询吧,这样太麻烦了,这时候要用到sql的两个函数,CONCAT_WS和CONCAT,两个函数的作用是将结果拼接为一个字符串,具体的用法可以自行百度.这里就不多做介绍了:)

所以我们的查询语句就可以写成SELECT CONCAT_WS(',',province,city,district) AS ids FROM `user` WHERE id =1;得到的结果如图:

有了这个结果我们基本上可以去查询到地址信息了,同样的在查询地址信息的时候我们也做了相应的拼接,所以最终的sql是这样的

SELECT GROUP_CONCAT(`name`) FROM address WHERE id IN (SELECT CONCAT_WS(',',province,city,district) FROM `user` WHERE id =1);

理想中的结果如图:

但实际上,这个语句并不能得到我们想要的结果,原因是SELECT CONCAT_WS(',',province,city,district) FROM `user` WHERE id =1查询出的结果是一个字符串,而字符串却不能作为查询条件中In的条件来使用,所以查询的结果并不是我们想要的.

再分析下我们的思路并没有问题,那么怎么才能用这个字符串作为查询条件,并最终得出我们想要的结果呢?根据网上的资料得知,查询条件in的内容只能是数字型的,所以他并不支持字符串的查询,所以这里我们还需要一个函数,instr.说实话这也是我第一次知道这个函数,毕竟对mysql真的只是会一点增删改查的皮毛,哈哈.那么接下来我们来试试这个函数的效果,最终的sql为

SELECT  GROUP_CONCAT(`name`)FROM  addressWHERE INSTR(    (SELECT      CONCAT_WS(',', province, city, district)    FROM      `user`    WHERE id = 1),    id  ) ;

执行后的结果也是我们想要的.当然上边的语句只是实现了查找到地址的结果,具体的可以根据业务需求继续修改,mysql的函数不得不说确实很强大.今后还是要多学习才是;

所以,最终的sql为:

SELECT  GROUP_CONCAT(`name`)FROM  addressWHERE INSTR(    CONCAT(      ',',      (SELECT        CONCAT_WS(',', province, city, district)      FROM        `user`      WHERE id = 1),      ','    ),    CONCAT(',', id, ',')  ) ;

关于"mysql查询结果怎么实现多列拼接查询"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

查询 结果 地址 函数 字符 字符串 条件 信息 如图 三个 两个 省市 省市区 知识 语句 问题 位置 内容 只是 字段 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 王牌战争早上也可以拆家的服务器 如何将应用迁移到另一台服务器上 网络安全建设绩效审计 网络安全问题辩论赛意义 后端网络技术支撑服务人员学习 北京领快网络技术有限公司 数据库数据在后台显示 服务器与浏览器相同点 数据库税务安全 网络安全教育的黑板报图片 网络安全局孙劲峰 联想ts80x服务器出厂编号在哪里看 csgo怎么重连平台服务器 手机可以炒股交易软件开发 软件开发文档小论文 哪些学校有人民日报数据库 广东餐饮软件开发外包 猫王互联网科技有限公司招聘 网络安全市场现状及背景 魔兽里不同服务器可以邮寄吗 做一份网络安全宣传周手抄报 购买机房服务器会计分录 小学生互联网络安全课观后感 c 访问数据库技术 数据库sqlserve下载 代理商流向数据库 天津网络技术服务报价 静安区新型网络技术概念设计 甘肃首届网络安全 网络安全团员地
0