SQLite查询在JavaScript中执行搜索和多个过滤器

时间:2017-03-23 18:40:51

标签: javascript database sqlite cordova cross-platform

我有一组数据(表格),如下所示。

+---------+---------+---------+-----------+
|  Name   | Surname | Country |  Status   |
+---------+---------+---------+-----------+
| Ryan    | Gosling | U.S.A.  | Citizen   |
| Raymond | Green   | Germany | Citizen   |
| Andrew  | Hollow  | U.S.A.  | Immigrant |
| Sam     | Giggs   | U.S.A.  | Citizen   |
+---------+---------+---------+-----------+

用户可以执行以下任务,

  1. 搜索(姓名或姓氏)无过滤器(国家/地区)
  2. 搜索(姓名或姓氏)+一个或两个过滤器(国家/地区和州)
  3. 没有搜索(姓名或姓氏),但有一个或两个过滤器(国家和地区)
  4. 我应该写什么问题来解决这个问题?

    编辑: 由于Rob拒绝做我的作业,让我解释一下我做了什么!它不符合道德规范,但能够工作。

    如果用户使用name或surname作为关键字搜索表,我会使用OR查询来提取这些结果。然后在for循环中通过选定的过滤器数组(如果有)运行该结果,并通过删除重复的条目来显示最终结果。 如果没有执行搜索并且只应用了一组过滤器,那么我将整个表带入并按上述方式运行for循环。 如果只执行搜索,那么我使用OR查询带来条带结果,如上所述。

1 个答案:

答案 0 :(得分:1)

你接近这个错误的方式,在sqlite中没有过滤器或搜索,你有WHERE子句和一些逻辑运算符,你可以将它们组合起来做你想要的。以下是2的示例:

SELECT * FROM [tableName] WHERE (Name = "something" OR Surname = "somethingElse") AND (Country = "someContry" OR Status = "someStatus");

你只需要找出逻辑,重要的部分是用括号分隔每个部分。