sqlite 语法改写
时间: 2023-07-28 15:07:09 浏览: 98
好的,以下是将您提供的 SQL 查询语句改写为 SQLite 语法的版本:
```
SELECT
tsuh.F_ID,
tsuh.F_TYPE,
tsuh.F_TIME,
taa.F_NAME || ' (' ||
(SELECT COUNT(*)
FROM t_use_search_history_parameter tushp
WHERE tushp.F_HISTORY_ID = tsuh.F_ID) || ')' as F_USER,
tsuh.F_CREATE_TIME,
tsuh.F_CREATE_USER,
tsuh.F_UPDATE_TIME,
tsuh.F_UPDATE_USER
FROM
t_use_search_history tsuh
LEFT JOIN t_system_account taa ON taa.F_ID = tsuh.F_USER
WHERE
tsuh.F_TYPE = '75a85978be3711eb9d455882a8924d68'
ORDER BY
F_TIME DESC
LIMIT
100 OFFSET -100;
```
在 SQLite 中,字符串拼接可以使用 `||` 运算符,因此我将 `concat()` 函数改为使用 `||` 运算符。其他部分的语法与您提供的查询语句相同。请注意,SQLite 中的 `LIMIT` 子句也可以使用负数来表示偏移量。
相关问题
它报错了 cur.execute(f"SELECT * FROM {table_name} WHERE {column} LIKE '%618%';") sqlite3.OperationalError: unrecognized token: ":"
这个错误可能是因为在 SQL 语句中使用了 f-string 的格式化字符串语法,但是 SQLite 不支持这种语法。你可以尝试将语句改写为使用字符串的格式化方法,如下所示:
```
cur.execute("SELECT * FROM {} WHERE {} LIKE '%618%';".format(table_name, column))
```
这样就可以避免使用 f-string 语法,同时保证 SQL 语句的正确性。
阅读全文