那么,在Mysql中,什么时候还有其他语句?

那么,在Mysql中,什么时候还有其他语句?,mysql,Mysql,我试图使用查询的负数来检查和更新我的mysql数据库。 我有一个用户传递的dinamic值,当存储到Db的结果达到限制时,我将用固定值更新另一个表 最让我烦恼的是,在THEN之后是否可以更新字段,以及是否可以更新会话变量 WHEN(something) >= 50 THEN 50 AND @variable='setted yay' 提前感谢您提供的信息 编辑: 好的,我试着用你的建议更新我的查询,这里是结果 SET @ord:='prova'; UPDATE Users, Ta

我试图使用查询的负数来检查和更新我的mysql数据库。 我有一个用户传递的dinamic值,当存储到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
SET@ord:='prova';
更新用户,表2
设置表2。字段=大小写
当(表2.field+5)>=50且如果((表2.field+5)>=50,(@ord='YAY GOOD'),'')不为空
那么50
当(表2.field+5)25、(@ord='YAY GOOD')、''不为空时
然后(表2.2字段+5)
当(表2.field+5)<-25且如果((表2.field+5)<-25,(@ord='YAY BAD'),'')不为空
然后(表2.2字段+5)
**其他(表2.场+5和@ord:='YAY平衡')**
结束
)
完,,
users.newalign=@ord
其中Table2.id='338'和users.id\u user=Table2.id
很明显,值5只是我用来检查sql il是否正确执行的一个示例

但现在我遇到了两个问题

1) 它似乎不接受以这种方式的ELSE命令,也许我在某些方面失败了。 2) 我无法将@ord传递给新的修改。当查询无误运行时,newalign字段每次都为空:/

将集合构建为“始终为真”条件:

CASE
  WHEN something >= 50
    AND IF(something >= 50, (@variable:='setted yay'), '') IS NOT NULL
  THEN 50

谢谢你的快速回复:)我用更多的细节编辑了我的问题。很抱歉再次打扰你,我编辑了前面的问题。提前感谢。您必须使用
:=
运算符设置变量。使用
=
将变量与值进行比较。您所有的
@ord='x'
语句必须更改为
@ord:='x'