【发布时间】:2021-04-12 04:59:09
【问题描述】:
我正在创建一个使用 better-sqlite3 的电子应用程序,我想知道,一般来说,是否有一种方法可以运行使用带有可选参数的 LIKE 的查询?假设有一个包含 firstname 和 lastname 列的 people 表。用户可以通过以下方式搜索:
只有名字,在这种情况下查询将是:
SELECT * from people WHERE firstname LIKE %userEnteredFname%
只有姓氏,在这种情况下查询将是:
SELECT * from people WHERE lastname LIKE %userEnteredLname%
或两个字段:
SELECT * from people WHERE firstname LIKE %userEnteredFname% AND lastname LIKE %userEnterLname%
仅供参考,有一种方法可以使用可选参数INSERT:
const stmt = db.prepare('INSERT INTO cats (name, age) VALUES (?, ?)');
const info = stmt.run('Joey'); //age would be null
查询取决于输入的搜索参数。果然你可以为少量的输入字段准备语句,但我有大约 7 个,那里可以有很多组合。
【问题讨论】:
-
(X LIKE '%' +?1+'%' OR ?1 IS NULL) AND (Y LIKE '%' +?2+'%' OR ?2 IS NULL) AND... So on... 然后把所有的参数或者空值放在没有输入的地方 -
@Selvin
?1是什么?
标签: javascript node.js sqlite electron