SELECT COUNT(*) FROM user WHERE hobby LIKE '%游泳%';
这样做虽然可以查询到喜欢游泳的用户数量,但是并不能准确的判断,可能存在一些用户的兴趣爱好里同时包含了“游泳”和“游戏”这两个字,也会被计入进去。为了避免这种误差,大家需要使用根据逗号分隔字符串的方法。
MySQL提供了一个函数 FIND_IN_SET(str, strlist),可以帮助大家查找字符串str在以逗号分隔的字符串strlist中的位置。如果找不到,则返回0,否则返回在strlist中的位置。
SELECT COUNT(*) FROM user WHERE FIND_IN_SET('游泳',hobby);
这样做可以准确地统计喜欢游泳的用户数量。
实际上,根据逗号分隔字符串的方法还可以用于根据多个条件进行查询。比如,大家要查询喜欢游泳且喜欢篮球的用户数量:
SELECT COUNT(*) FROM user WHERE FIND_IN_SET('游泳',hobby) AND FIND_IN_SET('篮球',hobby);
可以看到,使用根据逗号分隔字符串的方法可以帮助大家更加准确地进行数据查询和统计。