gpt4 book ai didi

dart - 如何使用 LIKE 语句和 % 或 * sql 通配符查询 sqflite 数据库

转载 作者:IT王子 更新时间:2023-10-29 06:57:16 27 4
gpt4 key购买 nike

我正在尝试使用 companyName 查询 Companies 表,我想获取 companyName(s) 包含查询字符串的公司,而不仅仅是 companyName 与我的查询字符串完全匹配的公司。如果我使用的是 sql,我会使用 ---WHERE companyName LIKE %queryString% 语句。所以我的问题是如何在 sqflite 中进行这样的查询?现在我收到一个语法错误,因为 %

表结构

CREATE TABLE Companies(
id INTEGER PRIMARY KEY,
name TEXT,
email TEXT,
website TEXT,
about TEXT,
phone TEXT,
logo TEXT,
created_at TEXT
);
);

搜索代码

Future<List<CompanyModel>> filterCompanies(String filterCriteria) async {
final db =await database;
List<CompanyModel> filteredCompanies = [];

var res = await db.rawQuery("SELECT * FROM Companies WHERE name LIKE %?%;", [filterCriteria]);
if(res.length !=null){
for (var item in res){
filteredCompanies.add(JobModel.fromDb(item));
}

}
return filteredCompanies;
}

当我添加 % 时,出现语法错误。

最佳答案

已接受的答案会导致我出现构建错误。我正在使用 sqflite: ^1.1.7+1 和 flutter: v1.13.5.
从下面的讨论中可以看出,百分比字符应该在参数中而不是在查询中,即

 res = await db.query(
"Companies",
where: "name LIKE ?"
whereArgs: ['%$title']
);

引用:https://github.com/tekartik/sqflite/issues/316

关于dart - 如何使用 LIKE 语句和 % 或 * sql 通配符查询 sqflite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55905892/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com