SQLite相当于Python';s"';%s%s';%(第一个U字串,第二个U字串);

SQLite相当于Python';s"';%s%s';%(第一个U字串,第二个U字串);,python,sqlite,string,Python,Sqlite,String,正如标题所说,在SQLite中Python的“%s%s%”(第一个字符串,第二个字符串)的等价物是什么?我知道我可以像第一个字符串一样进行连接,但是它看起来很难看。没有。没有。没有。我可以理解我不喜欢第一个字符串,但这是等价的。标准SQL(SQLite在这一领域所说的)并不是世界上最漂亮的字符串操作语言。您可以尝试将查询结果返回到其他语言(例如,您似乎喜欢的Python)并在那里进行连接;通常最好不要在数据库层进行“表示”(使用连接结果作为搜索对象肯定不是一个好主意;这使得无法使用索引进行优化!

正如标题所说,在SQLite中Python的
“%s%s%”(第一个字符串,第二个字符串)
的等价物是什么?我知道我可以像第一个字符串一样进行连接,但是它看起来很难看。

没有。

没有。

没有。

我可以理解我不喜欢第一个字符串,但这是等价的。标准SQL(SQLite在这一领域所说的)并不是世界上最漂亮的字符串操作语言。您可以尝试将查询结果返回到其他语言(例如,您似乎喜欢的Python)并在那里进行连接;通常最好不要在数据库层进行“表示”(使用连接结果作为搜索对象肯定不是一个好主意;这使得无法使用索引进行优化!)

我可以理解不喜欢第一个字符串(“代码”)第二个字符串(“代码”),但这是等效的。标准SQL(SQLite在这一领域所说的)并不是世界上最漂亮的字符串操作语言。您可以尝试将查询结果返回到其他语言(例如,您似乎喜欢的Python)并在那里进行连接;通常最好不要在数据库层进行“表示”(使用连接结果作为搜索对象肯定不是一个好主意;这使得不可能使用索引进行优化!)

我不完全确定您在寻找什么,但是它可能是
组\u concat

我不完全确定您在寻找什么,但它可能是
组\u concat
您确定您没有寻找参数替换吗

直接从:

相反,使用DB-API的参数替换。放?作为占位符,然后提供一个值元组作为游标的execute()方法的第二个参数。(其他数据库模块可能使用不同的占位符,例如%s或:1。)

例如:


您确定不是在寻找参数替换吗

直接从:

相反,使用DB-API的参数替换。放?作为占位符,然后提供一个值元组作为游标的execute()方法的第二个参数。(其他数据库模块可能使用不同的占位符,例如%s或:1。)

例如:


注意:您可以创建自己的SQL级别函数。例如,您可以使用以下Python函数:

def format_data(one, two):
    return "%s %s" % (one, two)
使用pysqlite的create_函数或APSW的createScalar函数告诉SQLite。然后您可以执行如下查询:

SELECT format_data(col1, col2) FROM table WHERE condition;
SELECT * from TABLE where col1 = format_data('prefix', col2);

因此,您可以将格式化逻辑放入可读性好的Python代码中,同时保持SQL的简单性,但清楚地显示其意图。

注意,您可以创建自己的SQL级函数。例如,您可以使用以下Python函数:

def format_data(one, two):
    return "%s %s" % (one, two)
使用pysqlite的create_函数或APSW的createScalar函数告诉SQLite。然后您可以执行如下查询:

SELECT format_data(col1, col2) FROM table WHERE condition;
SELECT * from TABLE where col1 = format_data('prefix', col2);

因此,您可以将格式化逻辑放在可读性好的Python代码中,同时保持SQL的简单性,但清楚地显示其意图。

不,我的意思是在常规查询的
SELECT
部分执行操作。(例如连接两列值)好的,我只是想“以防万一…”;-)不,我指的是在常规查询的
SELECT
部分执行的操作。(例如连接两列值)好的,我只是想“以防万一…”;-)是的,但是python字符串格式稍微灵活一些。不管怎样,我还是坚持用更难看的方式。是的,但是python字符串格式要灵活一点。不管怎样,我还是坚持用更丑陋的方式。