目录
业务描述
数据有问题,需要统计业务表包含":"的个数,正常的需要有两个":"
开始怼吧
1.创建表
CREATE TABLE `t_user` (
`id` int(11) NOT NULL,
`age` int(11) DEFAULT NULL,
`name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
`code` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
`birthday` date DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
2.插入测试数据
INSERT INTO `test`.`t_user`(`id`, `age`, `name`, `code`, `birthday`) VALUES (1, 1, '张三:1:1', '1', '2022-01-31');
INSERT INTO `test`.`t_user`(`id`, `age`, `name`, `code`, `birthday`) VALUES (2, 2, '张三22', '1', NULL);
INSERT INTO `test`.`t_user`(`id`, `age`, `name`, `code`, `birthday`) VALUES (3, 12, '李四666', '2', NULL);
INSERT INTO `test`.`t_user`(`id`, `age`, `name`, `code`, `birthday`) VALUES (4, 13, '李四66', '2', NULL);
INSERT INTO `test`.`t_user`(`id`, `age`, `name`, `code`, `birthday`) VALUES (5, 15, '李四6', '2', NULL);
INSERT INTO `test`.`t_user`(`id`, `age`, `name`, `code`, `birthday`) VALUES (7, 12, '王五888888', '3', NULL);
INSERT INTO `test`.`t_user`(`id`, `age`, `name`, `code`, `birthday`) VALUES (8, 13, '王五8888', '3', NULL);
INSERT INTO `test`.`t_user`(`id`, `age`, `name`, `code`, `birthday`) VALUES (9, 11, '王五88888888', '3', NULL);
INSERT INTO `test`.`t_user`(`id`, `age`, `name`, `code`, `birthday`) VALUES (100, 1, '1', '1', '2021-05-01');
3.查询
SELECT
LENGTH( NAME ) - LENGTH( REPLACE ( NAME, ':', '' ) )
FROM
t_user;
结果
