查询结果何时是非标量的?

时间:2016-10-08 03:28:43

标签: mysql sql database

我正在阅读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脚本中有意义地使用这些结果?

2 个答案:

答案 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

相关问题