如何查询以获取字段中匹配单词的数量,特别是在MySQL中。我只需要获取“搜索字词”出现在字段值中的次数即可。
例如,值是“一二一二”,所以当我搜索单词“一”时,它应该给我3
是否有可能?因为当前我只是从数据库中提取值,并使用服务器端语言进行计数。
谢谢
您可以创建一个可直接在SQL中使用的函数,以便一步一步完成所有操作。
这是我在MySQL网站上找到的函数:
delimiter || DROP FUNCTION IF EXISTS substrCount|| CREATE FUNCTION substrCount(s VARCHAR(255), ss VARCHAR(255)) RETURNS TINYINT(3) UNSIGNED LANGUAGE SQL NOT DETERMINISTIC READS SQL DATA BEGIN DECLARE count TINYINT(3) UNSIGNED; DECLARE offset TINYINT(3) UNSIGNED; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET s = NULL; SET count = 0; SET offset = 1; REPEAT IF NOT ISNULL(s) AND offset > 0 THEN SET offset = LOCATE(ss, s, offset); IF offset > 0 THEN SET count = count + 1; SET offset = offset + 1; END IF; END IF; UNTIL ISNULL(s) OR offset = 0 END REPEAT; RETURN count; END; || delimiter ;
您应该像这样使用它:
SELECT substrCount('one two one onetwo', 'one') `count`; // Returns 3