使用JS以任何顺序搜索单词

时间:2014-03-10 08:25:18

标签: javascript jquery web-sql

我有代码从文本框中搜索键入的单词,获取输入的单词,在Web sql数据库中搜索并在HTML页面中显示结果。

我可以使用 LIKE 完全按原样搜索单词。

(即)

SELECT * FROM tblName WHERE SearchWord LIKE %<typedword>%

如果表格有,

  1. 你好医生
  2. 嗨先生
  3. Hello World
  4. 欢迎程序员
  5. 用户输入“ Hello ”,它会显示

    **Hello** Doctor
    **Hello** World
    

    即使用户错误地排列了单词

    ,我也需要显示结果

    即如果用户输入“ World Hello

    没有显示任何结果。 但是,我想向用户展示

    Hello World
    

    你能帮帮我吗?

1 个答案:

答案 0 :(得分:1)

所以你想要使用输入的每个单词进行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。