gpt4 book ai didi

java - SQL更新方程变量

转载 作者:可可西里 更新时间:2023-11-01 08:07:26 25 4
gpt4 key购买 nike

我想问一下如何简化下面的准备语句,所以它只使用 2 个,而不是 3 个问号 (?),至于每个 'sytosc + ?'我正在设置相同的值。

PreparedStatement psUp = conn.prepareStatement("UPDATE zawodnicy "
+ "SET sytosc = CASE WHEN (sytosc + ? > 100) THEN 100 ELSE sytosc + ? END "
+ "WHERE id=?");

我知道在 SQL 中你可以这样做:

SET @a = 25; 
UPDATE zawodnicy SET sytosc = CASE WHEN (sytosc + @a > 100)
THEN 100 ELSE sytosc + @a END WHERE id = 1

显然你不能把它放到这个准备好的语句中,因为它们实际上是两个语句。

我想知道在第一次评估“sytosc + ?”时是否真的有办法在这种 SQL 更新中分配局部变量?

我非常感谢与 MySQL 兼容的解决方案,因为这是我在这个项目中使用的解决方案。

最佳答案

UPDATE zawodnicy SET sytosc = LEAST( 100, sytosc + ? )
WHERE id = ?

关于java - SQL更新方程变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8834856/

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