我正在阅读MySQL's documentation on the assignment operators,在$ bash switch-test.sh
✗ Administrator password required to change system-wide preferences
switch1
✓ Homebrew is installed.
switch2
✓ Java is installed.
switch3
运算符的部分中,它说
右侧的值可以是文字值,另一个存储值的变量,或产生标量值的任何合法表达式,包括查询结果(假设此值是标量值)。 / p>
如果我理解正确,标量值是表示固定值而不是范围或值集合或对象的值。
一般来说,对SQL非常新,我不太明白引用末尾的括号声明。查询结果何时是非标量值?是在查询只是从结果中的一行返回多个列时?如果是这样,如果这些结果无法存储在变量中,那么如何在MySQL脚本中有意义地使用这些结果?
答案 0 :(得分:3)
此类查询是标量子查询。这样的子查询有两个重要的属性:
如果子查询没有返回任何行,则指定的值为NULL
。
这是子查询。您可以使用SELECT
和:=
分配多个值:
select @var1 := col1, @val2 := col2
from . . .;
答案 1 :(得分:2)
标量值有一列和一行。您无法将此类多值结果分配给MySQL会话变量。
但您可以为多个变量分配多个列。
SELECT a, b, c FROM mytable INTO @varA, @varB, @varC;
有关详细信息,请参阅http://dev.mysql.com/doc/refman/5.7/en/select-into.html。