现在想在文章列表进行筛选,根据标签筛选出对应标签的文章
但是不能用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%' 执行结果如下:欢迎分享,转载请注明来源:内存溢出
评论列表(0条)