我在使用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'。
答案 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开头。