如果一个字在列中出现多次出现,MySQL会选择表格
问题描述:
我想编写一个查询,以在名为Description的列中选择具有单词“piggy”3次以上的所有行。如果一个字在列中出现多次出现,MySQL会选择表格
我知道查询在一个名为描述列单词 “小猪” 选择行会:
SELECT * FROM表WHERE
Description
LIKE “%小猪%”
所以我需要做什么才能选择,只有当“小猪”一词出现超过3次。
答
SELECT * FROM table WHERE Description LIKE "%piggy%piggy%piggy%"
似乎是最简单的方法。
答
马里斯的回答是好的,容易(除了我相信你想要的3倍以上),但这些都可以更轻松地自定义:这里
SELECT * FROM table WHERE DESCRIPTION LIKE CONCAT('%', REPEAT('piggy%', 4))
SELECT * FROM table WHERE Description != SUBSTRING_INDEX(Description, 'piggy', 4)
SUBSTRING_INDEX返回字符串的部分的左侧第四次出现'小猪'或整个字符串,如果它不匹配多次(所以查询抛出匹配整个字符串的行)。那么如果你改变了你想要的出现次数,只需要改变这个数字。
当然,如果您的表中有多行,那么所有这些选项都会非常慢。