sqllite在flutter中的多个参数

时间:2019-10-07 20:27:35

标签: flutter

我想知道如何将多个参数传递给sqllite中的原始查询。

我的代码在下面

query() async {

    // get a reference to the database
    Database db = await DatabaseHelper.instance.database;

    // raw query
    List<Map> result = await db.rawQuery('SELECT * FROM my_table WHERE name=?', ['Peter']);

    // print the results
    result.forEach((row) => print(row));

  }

在上面的代码中,我传递了一个参数“ Peter”,但是例如,如果我想传递多个参数怎么办

   List<Map> result = await db.rawQuery('SELECT * FROM my_table WHERE name=? and last_name=? and year=?', ['Peter'], ['Smith'],[2019]);

如果我执行上面的代码,则会出现错误“位置参数过多:预期有2个,但找到了4个。”有人可以告诉我如何在sqllite flutter中将多个参数传递给查询吗?

2 个答案:

答案 0 :(得分:3)

或者,如果您想使用查询功能,可以这样做:

router

答案 1 :(得分:0)

我假设您正在使用sqflite

您需要将所有参数放在一个列表中,而不是多个。 下面的代码应该像这样工作:

List<Map> result = await db.rawQuery(
    'SELECT * FROM my_table WHERE name=? and last_name=? and year=?', 
    ['Peter', 'Smith', 2019]
);

有关如何使用原始查询的更多示例,请参见其pub.dev page上的示例。