sqflite:如何在同一个 rawQuery 中创建一个包含两列的 SELECT
sqflite: How to make a SELECT with two columns inside the same rawQuery
我想使用 OR 运算符接收来自 2 列的信息,但我无法查看。
我有我的专栏 title
和我的专栏 categoria
。我想制作一个影响两列的 select,如下所示:selec * from title OR categoria where ...
这是我的:
final List<Map<String, dynamic>> queryResult = await db
.rawQuery('SELECT * FROM todos WHERE title like ?', ['%'+queryCourse+'%']); //here i want to complete the select with both columns
您需要 UNION ALL 运算符。
Select lastName from Employees
UNION ALL
Select lastName from Patients
见
https://www.sqlitetutorial.net/sqlite-union/
他们的例子是:
SELECT FirstName, LastName, 'Employee' AS Type
FROM employees
UNION
SELECT FirstName, LastName, 'Customer'
FROM customers;
注意,列必须“匹配”。这里我使用“lastName”。
与列不同,您不能“合并所有”。在 sqlitetutorial 的例子中,第三列是一个“字符串”......它可以有不同的值,但它必须是相同的“data-type”和 SELECT 中的序号位置声明。
请务必阅读有关 UNION 和 'UNION ALL' 之间差异的文档。
对于“where”条件,您必须指定 UNION ALL 的每个“部分”
https://www.techonthenet.com/sqlite/union_all.php
SELECT department_id, department_name
FROM departments
WHERE department_id >= 10
UNION ALL
SELECT employee_id, last_name
FROM employees
WHERE last_name = 'Anderson'
;
对 2 列使用 OR
运算符:
final List<Map<String, dynamic>> queryResult = await db
.rawQuery('SELECT * FROM todos WHERE title LIKE ? OR categoria LIKE ?',
['%'+queryCourse+'%', '%'+queryCourse+'%']);
或:
final List<Map<String, dynamic>> queryResult = await db
.rawQuery("SELECT * FROM todos WHERE title LIKE '%' || ? || '%' OR categoria LIKE '%' || ? || '%'",
[queryCourse, queryCourse]);
我假设您将对两列使用相同的参数 queryCourse
。
如果没有,则将参数更改为您已有的参数。
我想使用 OR 运算符接收来自 2 列的信息,但我无法查看。
我有我的专栏 title
和我的专栏 categoria
。我想制作一个影响两列的 select,如下所示:selec * from title OR categoria where ...
这是我的:
final List<Map<String, dynamic>> queryResult = await db
.rawQuery('SELECT * FROM todos WHERE title like ?', ['%'+queryCourse+'%']); //here i want to complete the select with both columns
您需要 UNION ALL 运算符。
Select lastName from Employees
UNION ALL
Select lastName from Patients
见
https://www.sqlitetutorial.net/sqlite-union/
他们的例子是:
SELECT FirstName, LastName, 'Employee' AS Type
FROM employees
UNION
SELECT FirstName, LastName, 'Customer'
FROM customers;
注意,列必须“匹配”。这里我使用“lastName”。
与列不同,您不能“合并所有”。在 sqlitetutorial 的例子中,第三列是一个“字符串”......它可以有不同的值,但它必须是相同的“data-type”和 SELECT 中的序号位置声明。
请务必阅读有关 UNION 和 'UNION ALL' 之间差异的文档。
对于“where”条件,您必须指定 UNION ALL 的每个“部分”
https://www.techonthenet.com/sqlite/union_all.php
SELECT department_id, department_name
FROM departments
WHERE department_id >= 10
UNION ALL
SELECT employee_id, last_name
FROM employees
WHERE last_name = 'Anderson'
;
对 2 列使用 OR
运算符:
final List<Map<String, dynamic>> queryResult = await db
.rawQuery('SELECT * FROM todos WHERE title LIKE ? OR categoria LIKE ?',
['%'+queryCourse+'%', '%'+queryCourse+'%']);
或:
final List<Map<String, dynamic>> queryResult = await db
.rawQuery("SELECT * FROM todos WHERE title LIKE '%' || ? || '%' OR categoria LIKE '%' || ? || '%'",
[queryCourse, queryCourse]);
我假设您将对两列使用相同的参数 queryCourse
。
如果没有,则将参数更改为您已有的参数。