SQL like语句,单数,复数关键字问题

时间:2013-02-27 11:43:44

标签: sql sqlite

 for (String column : searchCols) {
            for (String keyword : keywords) { 
                listAllSql.append(getDBColumnName(column));
                listAllSql.append(" like "); //like
                listAllSql.append("'%");     //'%vision%'
                listAllSql.append(keyword); 
                listAllSql.append("%'"); 
                listAllSql.append(" or ");
            }

以下是代码片段。我传递了一个关键字,例如" Networks"被搜索。如果发现" Network"我希望语句返回结果事件。 (单数)以及包含"网络" (复数)。我对上述声明做了哪些更改才能实现此目的。我实际上正在使用' SQLite'经理作为Mozilla Firefox FYI的补充。

1 个答案:

答案 0 :(得分:0)

你可以添加到顶部(不确定语言):

for (String keyword : keywords) { 
    if right(keyword,1) = "s" and length(keyword) > 1 then
        keyword = left(keyword,length(keyword)-1)
    end if
    listAllSql.append.....

你可能遇到问题,他们搜索'as'并返回包含'a'的所有内容,但找到复数的单词并且不仅仅以s结尾将会更加困难,通常在搜索中误报也要好于假阴性(在我看来)。