mysql查询由逗号或分号隔开的列和对多列进行合并的操作

mysql查询由分号或逗号分隔的列是否包含某个值

	最近写项目,要查询一个由分号或者逗号分隔存储的列是否包含某个值的,
	第一个想到的是使用like,但是like不严谨可能会出现查询的数据并不是你想要的,下面介绍两种方法:
	
	1.使用mysql的 FIND_IN_SET(str,strlist)函数,此函数是根据逗号分隔来查询的,
	第一个参数是要查询的字符串,第二个参数是要搜索的逗号分隔的列,此方法只能作用于以逗号分隔的列。
	
	2.使用 locate(CONCAT(str,';'),CONCAT(strlist, ';')) 根据分号查询,第一个参数是要查询的字符串,
	使用concat函数拼接分号,第二个函数是要搜索的分号隔开的列

mysql合并多列的值

  1. 将单条记录中的多个列合并: concat(str1, str2,…) 函数
    ,该函数返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。
    若是想要返回以符号分隔的字符串可以使用 concat_ws(separator, str1, str2, …) 函数,该函数第一个参数指定分隔符。需要注意的是分隔符不能为null,如果为null,则返回结果为null。
  2. 将多条记录中的某些字段合并:
    语法:group_concat( 要连接的字段 ) [Order BY 排序字段 ASC/DESC] [Separator ‘分隔符’] )
    group_concat() 函数,该函数需要有group by 语句。使用group_concat() 方法默认是以“,”进行分割, 如果希望以其他字符进行分割可使用“separator”.
    默认:
    group_concat(合并列)
    加排序:
    group_concat(合并列 order by 合并列)
    更改默认分隔符:
    group_concat(合并列 order by 合并列 separator ‘;’)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值