开发者

Mysql中FIND_IN_SET函数的使用及问题

FIND_IN_SET函数用于返回字符串str在字符串列表str_list中的位置,返回一个整数或一个NULL值

语法格式

FIND_IN_SET(str,str_list)

str: 需要查询的字符串

str_list:  需要查询的字符串列表,参数以","分隔,形式如 (1,2,6,8,10,22)

提示Tips

① 如果在 str_list 中没有找到 str,FIND_IN_SET函数返回 0

② 如果 str 或 str_list 为 NULL,FIND_IN_SET函数返回 NULL

③ 如果 str_list 是一个空字符串(""),FIND_IN_SET函数函数返回 0

示例1

-- 1
SELECT FIND_IN_SET("a", "a");
-- 3
SELE编程客栈CT FIND_IN_SET("c", "a,hTKthuqCb,c,c,d");
-- 0
SELECT FIND_IN_SET("a", "s,q,l");
-- 0
SELECT FIND_IN_SET("q", "");
-- 5
SELECT FIND_IN_SET("o", "h,e,l,l,o");
-- Null
SELjsECT FIND_IN_phpSET("q", null);
-- Null
SELECT FIND_IN_SET(null, "s,q,l");

示例2

导入数据

DROP TABLE IF EXISTS `divisions`;
CREATE TABLE `divisions` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(25) NOT NULL,
  `belts` varchar(200) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4;

INSERT INTO `divisions` VALUES ('1', 'O-1', 'white,yellow,orange');
INSERT INTO `divisions` VALUES ('2', 'O-2', 'purple,green,blue');
INSERT INTO `divisions` VALUES ('3', 'O-3', 'brown,red,black');
INSERT INTO `divisions` VALUES ('4', 'O-4', 'white,yellow,orange');
INSERT INTO `divisions` VALUES ('5', 'O-5', 'purple,green,blue');
INSERT INTO `divisions` VALUES ('6', 'O-6', 'brown,red');
INSERT INTO `divisions` VALUES ('7', 'O-7', 'black');
INSERT INTO `divisions` VALUES ('8', 'O-8', 'white,yellow,orange');
INSERT INTO `divisions` VALUES ('9', 'O-9', 'purple,green,blue');
INSERT INTO `divisions` VALUES ('10', 'O-10', 'brown,red');

divisions表 

Mysql中FIND_IN_SET函数的使用及问题

问题1:  查询生产皮带包含red belts的部门信息

SELECT name, belts
FROM divisions
WHERE FIND_IN_SET('red', belts);

结果展示 

Mysql中FIND_IN_SET函数的使用及问题

问题2:  查询生产皮带不包含black belts的部门信息

SELECT name, belts
FROM divisions
WHERE NOT FIND_IN_SET('black', belts);

结果展示

Mysql中FIND_IN_SET函数的使用及问题

问题3:查找名称为O-1或O-2的部门 

-- 使用FIND_IN_SET
SELECT name, belts
FROM divisionspython
WHERE FIND_IN_SET(name, 'O-1,O-2');

-- 使用IN运算符
SELECT name, belts
FROM divisions
WHERE name IN ('O-1','O-2');

结果展示

Mysql中FIND_IN_SET函数的使用及问题

补充扩展知识: column IN ('x', 'y', 'z')表达式与FIND_IN_SET(column, 'x,y,z')效果相同

当你希望将值与数据库中的值列表进行匹配时,可以使用IN运算符; 当你希望将值与数据库中以逗号分隔存储的值列表进行匹配时,可以使用FIND_IN_SET函数

到此这篇关于mysql中FIND_IN_SET函数的使用及问题的文章就介绍到这了,更多相关Mysql FIND_IN_SET函数内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新数据库

数据库排行榜