SQL语句排除太多

时间:2014-02-04 11:42:19

标签: sql sql-like

我在使用sql LIKE语句时遇到了一些问题:

假设我的表中有三条记录,名为文章。该表有一个名为content的列:

content
-------
lorem ipsum hey jippi lorem ipsum ipusm lorum
yippi
lorem ipsum heyyippikayay lorem ipsum

以下语句返回所有行:

SELECT * FROM articles
WHERE content LIKE '%jippi%';

但是如何匹配content1和content2。

如果我去:

SELECT * FROM articles
WHERE content LIKE 'jippi%';

我只会获得内容2。此查询排除了content1,因为它前面是'hey ...',但我的目的是排除仅将字符串'yippi'作为单词的一部分找到的记录,如content3中所示。但是,如果在'yippiyay'中的字符串开头找到'yippi',我想返回此行。

因此:我需要一个类似sql的语句,它只返回我找到我的确切searchterm的记录,或者有以searchterm开头的单词,即'yippi'或'yippiyay'。

2 个答案:

答案 0 :(得分:2)

尝试

SELECT * FROM articles WHERE content LIKE '%ippi';

我仍然不明白它的目的,但确实有效......

答案 1 :(得分:0)

也许你应该尝试这样的事情:

SELECT * FROM articles
WHERE content LIKE 'jippi%' or content like '% jippi%';

但只有在单词之间只有一个空格时,这才有效。 解决方案:

SELECT * FROM articles WHERE content LIKE '%ippi';

很好,但不会听到像jippi或类似的词,它以jippi开头。