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

标签 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. 不搜索(名字或姓氏),但使用一个或两个过滤器(国家/地区和状态)

我应该编写哪些查询来解决此问题?

编辑: 由于罗布拒绝做我的作业😜,让我解释一下我做了什么!这不道德,但确实有效。

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

最佳答案

您处理此问题的方式是错误的,sqlite 中没有过滤器或搜索,您有 WHERE 子句和一些逻辑运算符,您可以将它们组合起来执行您想要的操作。以下是 2 的示例:

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

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

关于javascript - SQLite 查询在 JavaScript 中执行搜索和多个过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42984405/

相关文章:

javascript - 从 onClick 事件处理程序向 React 中的父组件传递参数的正确方法是什么

MYSQL 查询问题 - 将产品详细信息加入结果

python - Pandas read_csv 加速

iphone - 如何将数据从NSArray插入核心数据

javascript - 使用 Webpack 连接并缩小所有 less 文件而不导入它们

javascript - HTML : get special character without formating

mySQL查询查找两行时间不满足条件的地方

sqlite 选择查询

android - 如何更新 Android 应用程序用作数据源的数据库

javascript - jQuery - setInterval/clearInterval 延迟