|
electron使用sqlcipher中select多字段条件查询
在 SQLCipher 中,进行多字段条件查询的 SQL 语句与标准 SQLite 的语法相同。你可以使用 `SELECT` 语句来查询多个字段,并使用 `WHERE` 子句来指定查询条件。以下是一个示例,展示如何在 SQLCipher 中进行多字段条件查询。
### 示例代码
- const sqlite3 = require('sqlite3').verbose();
- const SQLCipher = require('sqlcipher');
- // 创建或打开数据库
- let db = new SQLCipher.Database('test.db');
- // 使用密码打开数据库
- db.exec("PRAGMA key = 'your_password';", (err) => {
- if (err) {
- console.error(err.message);
- } else {
- // 创建表
- db.exec("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER);", (err) => {
- if (err) {
- console.error(err.message);
- } else {
- // 插入一些示例数据
- db.run("INSERT INTO users (name, age) VALUES (?, ?)", ['Alice', 30]);
- db.run("INSERT INTO users (name, age) VALUES (?, ?)", ['Bob', 25]);
- db.run("INSERT INTO users (name, age) VALUES (?, ?)", ['Charlie', 35]);
- // 多字段条件查询
- const sql = "SELECT * FROM users WHERE age > ? AND name LIKE ?";
- const params = [28, 'A%'];
- db.all(sql, params, (err, rows) => {
- if (err) {
- console.error(err.message);
- } else {
- // 输出查询结果
- rows.forEach((row) => {
- console.log(`ID: ${row.id}, Name: ${row.name}, Age: ${row.age}`);
- });
- }
- });
- }
- });
- }
- });
- // 关闭数据库
- db.close();
复制代码
### 解释
1. **创建或打开数据库**:使用 `new SQLCipher.Database('test.db')` 创建或打开一个数据库文件。
2. **设置密码**:使用 `PRAGMA key = 'your_password';` 设置数据库的密码。
3. **创建表**:使用 `CREATE TABLE` 语句创建一个名为 `users` 的表,包含 `id` 、 `name` 和 `age` 三个字段。
4. **插入数据**:插入一些示例数据以便进行查询。
5. **多字段条件查询**:
- 使用 `SELECT` 语句查询 `users` 表中符合条件的记录。
- 使用 `WHERE` 子句指定条件,例如 `age > 28` 和 `name LIKE 'A%'` 。
- 使用 `db.all` 方法执行查询,并将结果返回为行数组。
6. **输出结果**:遍历查询结果并输出每一行的信息。
### 总结
在这个示例中,我们展示了如何在 SQLCipher 中进行多字段条件查询。你可以根据自己的需求修改查询条件。
|
|