我有代码从文本框中搜索键入的单词,获取键入的单词,在 Web sql 数据库中搜索它并在 HTML 页面中显示结果。
这样我就可以使用 LIKE 准确地搜索单词。
(即)
SELECT * FROM tblName WHERE SearchWord LIKE %<typedword>%
如果表中有,
- 医生您好
- 先生您好
- Hello World
- 欢迎程序员
用户输入“Hello”,它显示了我
**Hello** Doctor
**Hello** World
即使用户错误地排列单词,我也需要显示结果,
即如果用户输入“World Hello”
它没有显示任何结果。 但是,我想向用户展示
Hello World
你能帮我吗?
最佳答案
所以您想要使用输入的每个单词而不是确切的字符串进行 AND 搜索?像这样的怎么样:
var yourSearchText = 'World Hello';
var searchTerms = yourSearchText.split(' ');
var searchTermBits = [];
for(var i=0; i<searchTerms.length;i++) {
searchTermBits.push("word LIKE %"+searchTerms[i]+"%");
}
var result = searchTermBits.join(" AND ");
var query = 'SELECT * FROM TABLE WHERE '+result;
这将为您提供如下查询:
SELECT * FROM table WHERE word LIKE '%world%' AND word LIKE '%hello%'
如果您想匹配任何搜索词而不是全部搜索词,请将 AND 更改为 OR。
关于javascript - 使用 JS 以任意顺序搜索单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22295205/