Я хотел бы спросить, как упростить следующее подготовленное утверждение , чтобы оно использовало только 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
Очевидно, что вы не можете поместить его в это подготовленное утверждение, поскольку это фактически два утверждения.
Интересно, есть ли способ присвоения локальной переменной в этом виде SQL Update при первой оценке 'sytosc +?'?
Я был бы очень признателен за решение, совместимое с MySQL, так как именно это я использую в этом проекте.