SQL小提琴
MySQL 5.5.32 架构设置:
CREATE TABLE Table1
(`ROW ID` varchar(5), `CONTENT` varchar(18))
;
INSERT INTO Table1
(`ROW ID`, `CONTENT`)
VALUES
('test1', 'foo, foo, foo'),
('test2', 'bar, bar'),
('test3', 'foo, foo'),
('test4', 'foo, foo, foo, foo')
;
查询 1:
SELECT *
FROM Table1
WHERE ((LENGTH(CONTENT) -
LENGTH(REPLACE(CONTENT, ',', ''))) + 1) < 3
AND SUBSTRING(CONTENT,1,LENGTH('FOO')) = 'FOO'
结果:
| ROW ID | CONTENT |
|--------|----------|
| test3 | foo, foo |
编辑 :
如果您正在处理短语,它可能如下所示:
SQL小提琴
MySQL 5.5.32 架构设置:
CREATE TABLE Table1
(`ROW ID` varchar(5), `CONTENT` varchar(48))
;
INSERT INTO Table1
(`ROW ID`, `CONTENT`)
VALUES
('test1', 'foo de foo refe foo'),
('test2', 'bar re bar'),
('test3', 'foo rer ef foo'),
('test4', 'foo rer foo fsdfs foo dfsfe foo')
;
查询 1:
SELECT *
FROM Table1
WHERE (LENGTH(CONCAT(' ',CONTENT,' ')) -
LENGTH(REPLACE(CONCAT(' ',UPPER(CONTENT),' '),
CONCAT(' ','FOO',' '), '')))
/(LENGTH('FOO')+2) < 3 AND
CONCAT(' ',CONTENT,' ') LIKE CONCAT('% ','FOO',' %')
结果:
| ROW ID | CONTENT |
|--------|----------------|
| test3 | foo rer ef foo |