MySQL:判断某个字符串是否包含在以某个符号分隔的字符串内

先看MySQL手册中find_in_set函数的语法:

FIND_IN_SET(str,strlist)

假如字符串str 在由N个子链组成的字符串列表strlist 中,则返回值的范围在 1 到 N 之间。一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则   FIND_IN_SET() 函数被优化,使用比特计算。如果str不在strlist 或strlist 为空字符串,则返回值为 0 。如任意一个参数为NULL,则返回值为 NULL。这个函数在第一个参数包含一个逗号(‘,’)时将无法正常运行。

使用方法如下:

SELECT
	t.id,
	t.type_ids,
	FIND_IN_SET(
		"4",
		REPLACE (t.type_ids, ";", ",")
	) index_
FROM
	common_error_detail t
WHERE
	FIND_IN_SET(
		"4",
		REPLACE (t.type_ids, ";", ",")
	)

查询结果如下:

 

需要注意的是,strlist一定是个以逗号隔开的字符串,如果是以其他字符串隔开的,可以先使用REPLACE将特殊字符替换成逗号

FIND_IN_SET的返回值是要查找的字符串在字符串列表中的位置,从1开始计算

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL中,判断字符串是否包含某个字符可以使用通配符%、字符串函数find_in_set()和字符串函数locate()。使用通配符%可以进行模糊匹配,可以查询某个字符串是否包含一个模糊查询的场景。例如,使用LIKE语句可以判断某个字段是否包含某个字符串,如:SELECT * FROM table_name WHERE column_name LIKE '%string%'; \[1\] 另外,MySQL提供了字符串函数find_in_set(),该函数用于返回一个字符串在另一个字符串中的位置索引。如果找到了,则返回大于0的数,否则返回0。该函数的第一个参数是要查找字符串,第二个参数是要查找字符串列表,字符串之间用逗号分隔。例如,使用find_in_set()函数可以判断某个字段是否包含某个字符串,如:SELECT * FROM table_name WHERE find_in_set('string', column_name) > 0; \[2\] 此外,MySQL还提供了字符串函数locate(),该函数用于返回一个字符串在另一个字符串中的位置索引。如果找到了,则返回大于0的数,否则返回0。该函数的第一个参数是要查找字符串,第二个参数是要查找字符串。例如,使用locate()函数可以判断某个字段是否包含某个字符串,如:SELECT * FROM table_name WHERE locate('string', column_name) > 0; \[2\] 综上所述,可以使用通配符%、字符串函数find_in_set()和字符串函数locate()来判断MySQL中的字符串是否包含某个字符。 #### 引用[.reference_title] - *1* [MySQL判断某个字符串是否包含某个字符串方法](https://blog.csdn.net/weixin_42537012/article/details/127513229)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [mysql字符串字段判断是否包含某个字符串的3种方法](https://blog.csdn.net/m0_38106299/article/details/81285164)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Mysql字符串字段判断是否包含某个字符串的方法](https://blog.csdn.net/lchq1995/article/details/86615258)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值