mysql-FIND_IN_SET包含查询

本文介绍了如何在SQL查询中利用FIND_IN_SET函数快速定位ancestorid列中包含数字14的所有记录,避免了使用LIKE进行模糊查找的方法。
摘要由CSDN通过智能技术生成

如图所示,需要查询字段ancestorid中包含14的所有数据,使用FIND_IN_SET即可实现,不需要使用模糊查找like 示例sql:

SELECT * FROM mt_fire_template WHERE FIND_IN_SET(14,ancestorid)

结果

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<h3>回答1:</h3><br/>find_in_set函数是MySQL中的一个字符串函数,用于在一个逗号分隔的字符串列表中查找一个指定的字符串,并返回其在列表中的位置。例如,find_in_set('a', 'a,b,c,d')将返回1,因为字符串'a'在列表中的第一个位置。 在实际应用中,find_in_set函数通常用于查询某个字段中是否包含指定的值。例如,可以使用以下语句查询包含'apple'的记录: SELECT * FROM fruits WHERE find_in_set('apple', fruits_list) > ; 其中,fruits_list是一个逗号分隔的字符串列表,包含了所有水果的名称。如果某个记录的fruits_list字段中包含了'apple',则该记录将被返回。 需要注意的是,find_in_set函数只能用于逗号分隔的字符串列表,如果列表中使用了其他分隔符,该函数将无法正常工作。 <h3>回答2:</h3><br/>find_in_setmysql中的一种字符串处理函数,用于在指定的字符串中查找指定值是否存在,并返回其在字符串中的位置。该函数可以用于将逗号分隔的字符串的值与另一个值进行比较。其语法如下: find_in_set(str,strlist) 其中,str是要搜索的字符串,strlist是要搜索的逗号分隔的字符串。 比如说,如果我们有一个students表,其中有一个名为hobby的字段,其中记录着每个学生的兴趣爱好,多个兴趣爱好之间用逗号隔开,我们希望查询所有喜欢篮球的学生,可以使用如下的sql语句: select * from students where find_in_set('篮球', hobby) > 0; 该语句会返回所有喜欢篮球的学生的记录。如果使用其他的比较符号,比如=、<、>等,可能会出现查询不正确的情况。 需要注意的是,find_in_set函数的性能比较差,因为要对逗号分隔的字符串进行分割,而且只能进行全文搜索。如果有更好的查询条件,建议使用其他的查询方式进行检索。 <h3>回答3:</h3><br/>MySQL中的find_in_set函数就是用于在指定字段中查找一组值中的某一个值是否存在。在MySQL中,find_in_set的语法如下: find_in_set('要查找的值','要查询的字段') 其中,要查询的字段必须是逗号分隔的多个值,可以是字符串或数字。 find_in_set函数的返回值是布尔值,如果查找到指定值则返回1,否则返回0。因此,在使用find_in_set函数时,最好将查询结果用IF语句进行判断和排序。 在实际开发中,find_in_set函数通常用于查询带有单选框或多选框的表单数据。例如,假设有一个存储用户兴趣爱好的表格user表,包含两个字段:user_id和interests,而interests字段是一个逗号分隔的字符串,存储用户选择的兴趣爱好。如下: user_id | interests ------- | --------- 1 | 音乐,电影,篮球 2 | 篮球,足球,游戏 3 | 游泳,阅读,旅游 如果想查询所有选择了篮球这个兴趣爱好的用户,则可以使用如下SQL语句: SELECT user_id FROM user WHERE FIND_IN_SET('篮球',interests) > 0; 该SQL语句会返回user_id为1和2的用户,因为他们都选择了篮球作为兴趣爱好。 总结:find_in_set函数是MySQL中非常实用的一个查询函数,可以用于查询带有单选框或多选框的表单数据。需要注意的是,在使用find_in_set函数时,要确保指定的字段是以逗号分隔的多个值,否则查询结果可能会出现错误。同时,在查询结果中需要使用IF语句进行判断和排序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值