MySQL查询某个字段包含某个值--FIND_IN_SET

MySQL查询某个字段包含某个值--FIND_IN_SET,第1张

文章中有标签字段(label),存的是标签ID字符串

现在想在文章列表进行筛选,根据标签筛选出对应标签的文章

但是不能用like。SO,FIND_IN_SET函数就大显身手了

FIND_IN_SET(str,strlist)

str 要查询的字符串

strlist 字段名 参数以”,”分隔 如 (1,2,6,8,10,22)

查询字段(strlist)中包含(str)的结果,返回结果为null或记录

倘若想搜索标签ID为2的文章:

SELECT id,label FROM dk_info where FIND_IN_SET ('2',label)

倘若想搜索标签ID为3的文章:

SELECT id,label FROM dk_info where FIND_IN_SET ('3',label)

DROP TABLE IF EXISTS `test_user` CREATE TABLE `test_user`  (   `id` int(11) NOT NULL,   `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,   `hobby` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,   PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic INSERT INTO `test_user` VALUES (1, 'beibei', 'feifei,guanguan,xiangxiang') INSERT INTO `test_user`(`id`, `name`, `hobby`) VALUES (2, 'feifei', 'call') 表结构如下:(注意两个字符串之间的分割是英文逗号)参数一:表示要查询的字符串。 参数二:表示在表中的哪个字段中查询,填字段名。 例如:FIND_IN_SET("feifei",hobby) 执行结果如下:执行语句如下: SELECT * FROM test_user WHERE hobby like '%guanguan%' 执行结果如下:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8367757.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-15
下一篇 2023-04-15

发表评论

登录后才能评论

评论列表(0条)

保存