分享mysql自带的一个非常实用的内置函数

发布时间:2023年12月18日

(1)我有一张表, 里面包括sip, dip, sport, dport字段, 执行下列sql语句, 结果如下:

select sip,dip,sport, dport from abnormal_audit_20231128

以上字段sp, dip, sport, dport 字段分别代表的意思是: 源ip, 目的ip, 源端口,? 目的端口

由于项目业务需求, 前端页面需按照以下形式展示:

就是需要把以上四列按照:? ? 源ip: 源端口 -> 目的ip: 目的端口 拼接到一起显示, 经过自己查阅资料,发现mysql里面有个?concat_ws() 函数可以达到上面的效果, 具体sql余下:

select concat_ws(' -> ' ,concat_ws(': ', sip, sport), concat_ws(': ', dip, dport)) as data_flow from abnormal_audit_20231128

??concat_ws() 函数里面需填入三个参数, 以上面concat_ws(': ', dip, dport)为例说明: 前面冒号:表示将后面两个参数以什么样的形式拼接到一起, 然后函数内第二个参数和第三个参数表示需要把哪些参数进行拼接, 我这么解释大家应该就很好理解了,? 理解了这里, 拿上面的sql就好理解了, 再给大家补充说明一下:?select concat_ws(' -> ' ,concat_ws(': ', sip, sport), concat_ws(': ', dip, dport)) as data_flow from abnormal_audit_20231128; 其中concat_ws(' -> ' ,concat_ws(': ', sip, sport), concat_ws(': ', dip, dport)) 可以拆分成三步理解, 第一步先以冒号:的形式把源ip即sip和源端口即sport拼接, 然后第二步同样以冒号的形式把目的ip即dip和目的端口dport拼接到一起 就得到了 sip:sport 和dip:dport两组数据, 最后只需要在他们中间使用符号-> 拼接到一起就可以达到上面源ip: 源端口 -> 目的ip: 目的端口 的效果, 所以就又在 拼接sip, sport和dip和dport的最外面踏上了一层concat_ws()函数, 大家感兴趣可以自行实验, 好了, 今天的实战干货就到这里结束了, 我们下期再会!!!

文章来源:https://blog.csdn.net/qq_35661171/article/details/135058655
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。