我正在尝试获取数据库字段中所有出现的子字符串以及每个后下一个索引的位置。到目前为止,我所做的是获取第一次出现和下一个字符串的位置,如下所示:
SELECT dataset.id,
SUBSTRING(dataset.text, LOCATE('XXXX', dataset.text) + LENGTH('XXXX'))
FROM datatable as dataset
任何帮助请得到所有的事件?
也许这会有所帮助:
delimiter //
CREATE FUNCTION getpos(haystack VARCHAR(255), search VARCHAR(10))
RETURNS VARCHAR(255)
BEGIN
DECLARE ret VARCHAR(255);
DECLARE pos INT;
SET ret = "";
SET pos = LOCATE (search, haystack);
WHILE (pos > 0) DO
SET ret = CONCAT_WS (',', ret, pos);
SET pos = LOCATE (search, haystack, pos+1);
END WHILE;
RETURN ret;
END//
然后进行选择:
SELECT dataset.id, getpos (dataset.text, 'XXXX') FROM datatable as dataset