我试图使用查询的负数来检查和更新我的 mysql 数据库。我有一个用户传递的动态值,当存储到 Db 的结果达到限制时,我将使用固定值更新另一个表。
最困扰我的是以下内容,可以在 THEN 更新字段之后更新会话变量吗?
WHEN(something) >= 50 THEN 50 AND @variable='setted yay'
提前感谢您的信息。
编辑:
好的,我想根据您的建议更新我的查询,结果在这里。
SET @ord:='prova';
UPDATE Users, Table2
SET Table2.field= CASE
WHEN(Table2.field + 5) >= 50 AND IF( (Table2.field + 5) >= 50, (@ord='YAY GOOD'), '') IS NOT NULL
THEN 50
WHEN(Table2.field + 5) <= -50 AND IF( (Table2.field + 5) <= -50, (@ord='YAY BAD'), '') IS NOT NULL
THEN -50
ELSE (
CASE
WHEN(Table2.field + 5) > 25 AND IF( (Table2.field + 5) > 25, (@ord='YAY GOOD'), '') IS NOT NULL
THEN (Table2.field + 5)
WHEN(Table2.field + 5) < -25 AND IF( (Table2.field + 5) < -25, (@ord='YAY BAD'), '') IS NOT NULL
THEN (Table2.field + 5)
**ELSE (Table2.field+ 5 AND @ord:='YAY EQUILIBRIUM')**
END
)
END,
users.newalign= @ord
WHERE Table2.id = '338' AND users.id_user = Table2.id
显然,值 5 只是我用来检查 sql 是否正确执行的示例。
但现在我遇到了 2 个问题。
1)它似乎不以这种方式接受 ELSE 命令,也许我在某些事情上失败了。2)我不能将@ord 传递给新的修改。当查询运行时没有错误时,newalign 字段每次都是 Empty :/