搜索子字符串之类的SQL以

时间:2014-08-09 09:36:32

标签: mysql sql search sql-like

我的MySQL数据库里有很多书。我正在寻找具体的书头。例如,我知道如何找到每个标题以“dan”开头:

SELECT * FROM books WHERE header LIKE 'dan%';

但是如何在标题内找到以某个短语开头的单词(substring)?

提前致谢。

2 个答案:

答案 0 :(得分:8)

这是一个快速而肮脏的技巧:以dan开头的单词可以位于header的开头,也可以位于空格之后,所以:

SELECT * FROM books WHERE header LIKE 'dan%' OR header like '% dan%';

答案 1 :(得分:2)

稍微简化的是以下逻辑,它在标题的开头添加一个空格:

SELECT *
FROM books
WHERE ' ' || header LIKE ' dan%';

唯一的问题是连接字符串取决于数据库,问题没有提到数据库。所以它也可能是:

WHERE ' ' + header LIKE ' dan%';

WHERE CONCAT(' ', header) LIKE ' dan%';