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

用于在JavaScript中执行搜索和多个过滤器的SQLite查询,javascript,database,sqlite,cordova,cross-platform,Javascript,Database,Sqlite,Cordova,Cross Platform,我有一组数据(表),如下所示 +---------+---------+---------+-----------+ | Name | Surname | Country | Status | +---------+---------+---------+-----------+ | Ryan | Gosling | U.S.A. | Citizen | | Raymond | Green | Germany | Citizen | | Andrew | Hol

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

+---------+---------+---------+-----------+
|  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   |
+---------+---------+---------+-----------+
用户可以执行以下任务:

  • 搜索(姓名或姓氏)无筛选器(国家/地区和状态)
  • 搜索(姓名)+一个或两个筛选器(国家/地区和状态)
  • 没有搜索(姓名或姓氏),但有一个或两个筛选器(国家/地区和状态)
  • 我应该写什么查询来解决这个问题? 编辑:
    由于Rob拒绝做我的作业您的做法是错误的,sqlite中没有筛选或搜索,您有
    WHERE
    子句和一些逻辑运算符,您可以将它们组合起来做您想做的事情。以下是2的示例:

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

    你只需要弄清楚逻辑,重要的是用括号来分隔每个部分。

    NO;我不会做你的家庭作业:普洛尔,我不是要你做我的家庭作业!我累了,失败了……我设法找到了一个解决办法,但还不够好。我想要一个sql查询。@Rob Brander,检查编辑部分。我尝试过这种方法。但我的问题是用户可以在同一列中选择多个过滤器。比如Country='U.S.A.'、'U.K.'。我不知道如何为这种情况编写查询。@aB9只需添加更多的
    条件。例如:
    ((Country=“U.S.A”或Country=“U.K”或Country=“someContry”)或Status=“someStatus”)
    。您也可以在
    条件中使用
    。例如:
    国家在(“U.A”、“U.K”、“someContry”)
    Ohk,所以我需要运行for循环,根据使用的过滤器数量形成查询,对吗?@aB9是的,应该可以,但使用字符串连接创建SQL语句是不安全的。您应该清理用户输入。通常这是通过使用准备好的语句来完成的(取决于编程语言)。很抱歉,回复太晚!我尝试使用或条件,现在它正在工作。:)