如何从 SQLite 中设置参数?
How to set parameters from within SQLite?
我一直无法弄清楚如何在 SQLite 中设置参数。我主要将它用于测试,并且正在设计我的代码,以便它可以尽可能容易地移植到另一个尚未确定的 SQL 版本。通常,我使用命名参数,在内部测试查询时,我会使用语法 @varname="value"
。我将在下面提供两个示例,展示我在测试时希望如何使用参数。
第一个示例只是设置并显示一个变量。
@string="Example String";
SELECT @string;
这应该是 return 变量的内容,在本例中:example string
.
在第二个示例中,参数用作条件的一部分:
@param=Dark;
SELECT Title from table;
WHERE Title= '%' || @param || '%';
这应该 return 结果如下:
Afterdark
Alone in the Dark
The Darkness
等等
SQLite 是一个嵌入式数据库,旨在与 'real' 编程语言一起使用。
设置参数值的唯一方法是从外部SQL。
下面的 SQLite 脚本将给出所需的输出:
BEGIN;
CREATE TEMP TABLE _Titles(Title TEXT);
/* Declaring a variable */
INSERT INTO _Titles(Title) VALUES ('dark');
/* Getting variable value (use within expression) */
SELECT Title FROM TitleTable WHERE Title like ( '%' || (SELECT Title FROM _Titles WHERE Title = 'dark' LIMIT 1) || '%');
DROP TABLE _Titles;
END;
请参考:Declare variable in sqlite and use it
可以使用 CTE 在 SQLite 中定义用户定义的变量:
示例 1
WITH vars as (SELECT "Example String" as string)
SELECT vars.string FROM vars;
示例 2
WITH vars as (SELECT "Dark" as param)
SELECT Title from [table], vars
WHERE Title LIKE '%' || vars.param || '%';
另见
我一直无法弄清楚如何在 SQLite 中设置参数。我主要将它用于测试,并且正在设计我的代码,以便它可以尽可能容易地移植到另一个尚未确定的 SQL 版本。通常,我使用命名参数,在内部测试查询时,我会使用语法 @varname="value"
。我将在下面提供两个示例,展示我在测试时希望如何使用参数。
第一个示例只是设置并显示一个变量。
@string="Example String";
SELECT @string;
这应该是 return 变量的内容,在本例中:example string
.
在第二个示例中,参数用作条件的一部分:
@param=Dark;
SELECT Title from table;
WHERE Title= '%' || @param || '%';
这应该 return 结果如下:
Afterdark
Alone in the Dark
The Darkness
等等
SQLite 是一个嵌入式数据库,旨在与 'real' 编程语言一起使用。
设置参数值的唯一方法是从外部SQL。
下面的 SQLite 脚本将给出所需的输出:
BEGIN;
CREATE TEMP TABLE _Titles(Title TEXT);
/* Declaring a variable */
INSERT INTO _Titles(Title) VALUES ('dark');
/* Getting variable value (use within expression) */
SELECT Title FROM TitleTable WHERE Title like ( '%' || (SELECT Title FROM _Titles WHERE Title = 'dark' LIMIT 1) || '%');
DROP TABLE _Titles;
END;
请参考:Declare variable in sqlite and use it
可以使用 CTE 在 SQLite 中定义用户定义的变量:
示例 1
WITH vars as (SELECT "Example String" as string)
SELECT vars.string FROM vars;
示例 2
WITH vars as (SELECT "Dark" as param)
SELECT Title from [table], vars
WHERE Title LIKE '%' || vars.param || '%';
另见