返回顶部
首页 > 资讯 > 数据库 >mysql中find_in_set函数的基本使用方法
  • 748
分享到

mysql中find_in_set函数的基本使用方法

mysqlfind_in_set函数mysqlfind_in_set函数in 2022-05-24 17:05:27 748人浏览 薄情痞子
摘要

前言 这是我最近新接触到的一个函数, 我在项目中的使用场景是这样的: 有一个应用类型表,表中有parentId字段和parentIds字段,前者为父级id,后者为多级父级id,在库中都是varchar类型,paren

前言

这是我最近新接触到的一个函数,

我在项目中的使用场景是这样的:

有一个应用类型表,表中有parentId字段和parentIds字段,前者为父级id,后者为多级父级id,在库中都是varchar类型,parentIds由多个父级id拼接而成由","分隔.

组长告知我可以使用该函数,就去进行了了解与使用.

语法

FIND_IN_SET(str,strlist)

定义

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

strlist:一个由英文逗号“,”链接的字符串,例如:"a,b,c,d",该字符串形式上类似于SET类型的值被逗号给链接起来。

示例:SELECT FIND_IN_SET('b','a,b,c,d'); //返回值为2,即第2个值

例子

有个文章表里面有个type字段,它存储的是文章类型,有 1头条、2推荐、3热点、4图文等等 。
现在有篇文章他既是头条,又是热点,还是图文,type中以 1,3,4 的格式存储。那我们如何用sql查找所有type中有4的图文类型的文章呢?

这就可以使用 find_in_set 了。以下为引用的内容:


select * from article where FIND_IN_SET('4',type)

find_in_set()和in的区别:

弄个测试表来说明两者的区别


CREATE TABLE `tb_test` (
 `id` int(8) NOT NULL auto_increment,
 `name` varchar(255) NOT NULL,
 `list` varchar(255) NOT NULL,
 PRIMARY KEY (`id`)
);
INSERT INTO `tb_test` VALUES (1, 'name', 'daodao,xiaohu,xiaoqin');
INSERT INTO `tb_test` VALUES (2, 'name2', 'xiaohu,daodao,xiaoqin');
INSERT INTO `tb_test` VALUES (3, 'name3', 'xiaoqin,daodao,xiaohu');

原来以为Mysql可以进行这样的查询:


SELECT id,name,list from tb_test WHERE 'daodao' IN(list); -- (一)

实际上这样是不行的, 这样只有当list字段的值等于'daodao'时(和IN前面的字符串完全匹配),查询才有效,否则都得不到结果,即使'daodao'真的在list中。

再来看看这个:


SELECT id,name,list from tb_test WHERE 'daodao' IN ('libk', 'zyfon', 'daodao'); -- (二)

这样是可以的。

这两条到底有什么区别呢?为什么第一条不能取得正确的结果,而第二条却能取得结果。原因其实是(一)中 (list) list是变量, 而(二)中 ('libk', 'zyfon', 'daodao')是常量。

所以如果要让(一)能正确工作,需要用


find_in_set():

SELECT id,name,list from tb_test WHERE FIND_IN_SET('daodao',list); -- (一)的改进版

总结

到此这篇关于mysql中find_in_set函数的基本使用方法的文章就介绍到这了,更多相关mysql find_in_set函数使用内容请搜索自学编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持自学编程网!

您可能感兴趣的文档:

--结束END--

本文标题: mysql中find_in_set函数的基本使用方法

本文链接: https://lsjlt.com/news/9906.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • mysql中find_in_set函数的基本使用方法
    前言 这是我最近新接触到的一个函数, 我在项目中的使用场景是这样的: 有一个应用类型表,表中有parentId字段和parentIds字段,前者为父级id,后者为多级父级id,在库中都是varchar类型,paren...
    99+
    2022-05-24
    mysql find_in_set函数 mysql find_in_set函数 in
  • Mysql中find_in_set()函数怎么使用
    这篇“Mysql中find_in_set()函数怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起...
    99+
    2023-03-13
    mysql find_in_set()
  • MySQL中find_in_set()函数用法详解
    1、 find_in_set()官方涵义(MySQL手册中语法说明) FIND_IN_SET(str,strlist),该函数的作用是查询字段(strlist) 中是否包含(str)的结果,返回结果为...
    99+
    2023-10-02
    mysql 数据库 sql
  • mysql中find_in_set函数的用法是什么
    在 MySQL 中,FIND_IN_SET 函数用于在一个逗号分隔的字符串列表中查找某个值,并返回其在列表中的索引位置。该函数的语法...
    99+
    2024-04-09
    mysql
  • find_in_set()函数怎么在mysql中使用
    这期内容当中小编将会给大家带来有关find_in_set()函数怎么在mysql中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。MySQL手册中find_in_set...
    99+
    2024-04-02
  • 怎么在mysql中使用find_in_set()函数
    这篇文章将为大家详细讲解有关怎么在mysql中使用find_in_set()函数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。MySQL手册中find_in...
    99+
    2024-04-02
  • Mysql中的find_in_set() 函数用法详解及使用场景
    一、find_in_set() 函数详解 示例: select FIND_IN_SET('1', '1,2,3');// 结果:1select FIND_IN_SET('3', '1,2,3');// 结果:3select FIN...
    99+
    2023-08-20
    mysql 数据库 java
  • MySQL中find_in_set()函数用法示例详解
    目录1、 find_in_set()官方涵义(MySQL手册中语法说明)2、find_in_set() 和 in 的区别3、应用场景3.1 文章表type字段查询3.2 部门树查询,...
    99+
    2024-04-02
  • Mysql中find_in_set()函数用法详解以及使用场景
    目录一、find_in_set() 函数详解二、应用场景三、FIND_IN_SET()和IN、LIKE的区别:1.IN和FIND_IN_SET的区别:2.like和FIND_IN_SET的区别:总结一、find_in_s...
    99+
    2023-03-10
    mysql find_in_set()函数 mysql find_in_set() mysql的like查询
  • PHP函数的基本使用方法
    在现代的网页应用程序中,PHP作为一种重要的服务器端编程语言,被广泛应用。PHP中的函数是一种可重用的代码块,不仅简化了代码的编写,而且提高了代码的可维护性和可读性。本文将介绍PHP函数的基本使用方法,以帮助读者更好地理解和应用PHP函数。...
    99+
    2023-05-22
    方法 PHP函数 基本使用
  • mysql中find_in_set函数的作用是什么
    在 MySQL 中,FIND_IN_SET() 函数用于在一个逗号分隔的字符串列表中查找一个指定的值,并返回其在列表中的位置(从1开...
    99+
    2024-04-09
    mysql
  • mysql中find_in_set函数使用无效怎么解决
    如果在MySQL中使用find_in_set函数时出现无效的问题,可能是因为函数的参数不正确或者数据存储格式有问题。以下是一些解决方...
    99+
    2024-04-09
    mysql
  • sql中find_in_set函数的用法是什么
    在SQL中,FIND_IN_SET()函数用于在一个逗号分隔的字符串列表中查找某个值,并返回其位置。该函数的语法如下: FIND_I...
    99+
    2024-04-09
    sql
  • mysql中的find_in_set字符串查找函数如何使用
    本篇内容介绍了“mysql中的find_in_set字符串查找函数如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,...
    99+
    2024-04-02
  • JavaScript函数的定义与基本使用方法
    本篇内容介绍了“JavaScript函数的定义与基本使用方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2024-04-02
  • JavaScript函数的定义和基本使用方法
    1.用函数语句定义 先给一个例子,该函数的功能是返回数组元素的和; function sumArray(arr) { var sum = 0; for(var...
    99+
    2024-04-02
  • oracle find_in_set函数的用法是什么
    FIND_IN_SET 函数用于在逗号分隔的字符串列表中查找指定的值,并返回其在列表中的位置。其语法如下: FIND_IN_SET(...
    99+
    2024-04-09
    oracle
  • mysql中concat函数的使用方法
    这篇文章主要讲解了“mysql中concat函数的使用方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql中concat函数的使用方法”吧!1、用于返回多个字符串连接之后的字符串。S...
    99+
    2023-06-20
  • mysql中instr()函数的使用方法
    本篇内容主要讲解“mysql中instr()函数的使用方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql中instr()函数的使用方法”吧!说明用于返回子串substr在字符串str中...
    99+
    2023-06-20
  • mysql中replace函数的使用方法
    mysql 中的 replace() 函数用于替换字符串中的字符或子字符串,其语法为:replace(string, search_string, replace_string)。它支持...
    99+
    2024-04-29
    mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作