gpt4 book ai didi

sql - SQLite 中的 IF() 语句替代方案

转载 作者:行者123 更新时间:2023-12-03 00:30:37 26 4
gpt4 key购买 nike

我有 MySQL (perl) 的代码:

UPDATE pages
SET rkey = rkey + 2,
lkey = IF(lkey >= $key, lkey + 2, lkey)
WHERE rkey >= $key

我需要在 SQLite 中使用此代码,但不支持 IF() 函数。我能做什么?

最佳答案

对于通用 SQL,您可以使用 CASE:

CASE is used to provide if-then-else type of logic to SQL. Its syntax is:

SELECT CASE ("column_name")
WHEN "condition1" THEN "result1"
WHEN "condition2" THEN "result2"
...
[ELSE "resultN"]
END
FROM "table_name"

来自http://www.sqlite.org/lang_expr.html “CASE 表达式”部分

例如

UPDATE pages
SET rkey = rkey + 2,
lkey = CASE WHEN lkey >= $key THEN lkey + 2 ELSE lkey END
WHERE rkey >= $key

关于 SQLite 和 CASE 的另一个链接(带有子选择更新的示例)http://sqlite.awardspace.info/syntax/sqlitepg09.htm

CASE 可以在通用 SQL 的 UPDATE 中使用,但我没有关于 SQLite 支持使用 CASE 进行 UPDATE 的信息

http://www.craigsmullins.com/ssu_0899.htm “修改数据时使用 CASE 表达式”部分

关于sql - SQLite 中的 IF() 语句替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4874285/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com