Mysql :=在占位符的上下文中表示什么

Mysql :=在占位符的上下文中表示什么,mysql,sql,Mysql,Sql,对于那些知道的人来说,这可能是一个愚蠢的问题,但问题来了 正在尝试在查询中使用占位符。我发现以下方法有效: SELECT day, @dy:=CAST( CASE day WHEN 'Su' THEN 1 WHEN 'Mo' THEN 2 WHEN 'Tu' THEN 3 WHEN 'Wed' TH

对于那些知道的人来说,这可能是一个愚蠢的问题,但问题来了

正在尝试在查询中使用占位符。我发现以下方法有效:

SELECT day, @dy:=CAST( CASE day
                         WHEN 'Su' THEN 1
                         WHEN 'Mo' THEN 2
                         WHEN 'Tu' THEN 3
                         WHEN 'Wed' THEN 4
                         WHEN 'Th' THEN 5
                         WHEN 'Fr' THEN 6
                         WHEN 'Sa' THEN 7
                     END AS UNSIGNED) as dayofweek 
 FROM `Schedule_Repetition` WHERE repetition_Key='426';
但这不起作用

SELECT day, @dy=CAST( CASE day
                         WHEN 'Su' THEN 1
                         WHEN 'Mo' THEN 2
                         WHEN 'Tu' THEN 3
                         WHEN 'Wed' THEN 4
                         WHEN 'Th' THEN 5
                         WHEN 'Fr' THEN 6
                         WHEN 'Sa' THEN 7
                     END AS UNSIGNED) as dayofweek 
 FROM `Schedule_Repetition` WHERE repetition_Key='426';
我看到各种各样的占位符示例,其中一些使用
@p=……
,另一些使用
@p:=…。
请有人解释一下:=表示什么,以及为什么语法不同,或者指向说明使用:=

:=
的文档。以下信息来自dev.mysql.com上的

赋值运算符。使用户变量位于 运算符将在其右侧接受值。右边的值 hand端可以是文字值、另一个存储值的变量,或者 任何产生标量值的合法表达式,包括结果 查询的属性(前提是该值是标量值)

=
:=
之间的区别:

=赋值(作为SET语句的一部分,或作为UPDATE语句中SET子句的一部分) :=赋值

与=,不同:=运算符从不被解释为比较 操作人员这意味着您可以在任何有效的SQL语句中使用:=而不是 仅在SET语句中)为变量赋值

查看。

:=
是一个。以下信息来自dev.mysql.com上的

赋值运算符。使用户变量位于 运算符将在其右侧接受值。右边的值 hand端可以是文字值、另一个存储值的变量,或者 任何产生标量值的合法表达式,包括结果 查询的属性(前提是该值是标量值)

=
:=
之间的区别:

=赋值(作为SET语句的一部分,或作为UPDATE语句中SET子句的一部分) :=赋值

与=,不同:=运算符从不被解释为比较 操作人员这意味着您可以在任何有效的SQL语句中使用:=而不是 仅在SET语句中)为变量赋值


查看。

感谢您提供的文档链接(不太确定我是如何错过这些链接的),非常感谢您提供如此清晰的回复。感谢您提供的文档链接(不太确定我是如何错过这些链接的),非常感谢您提供如此清晰的回复。