Mysql 什么时候查询结果是非标量的?
我正在阅读,在Mysql 什么时候查询结果是非标量的?,mysql,sql,database,Mysql,Sql,Database,我正在阅读,在:=操作符的部分中,它说 右侧的值可以是文字值、另一个存储值的变量或任何生成标量值的合法表达式,包括查询结果(前提是该值是标量值) 如果我理解正确,标量值是表示固定值的值,而不是值的范围或集合或对象 一般来说,我对SQL非常陌生,所以我不太理解引用末尾的附加语句。查询的结果何时为非标量值?是不是一个查询只是从其结果中的一行返回多个列?如果是这样的话,如果这些结果不能存储在变量中,如何在MySQL脚本中有意义地使用它们呢?标量值有一列和一行。您不能将这样的多值结果分配给MySQL会话
:=
操作符的部分中,它说
右侧的值可以是文字值、另一个存储值的变量或任何生成标量值的合法表达式,包括查询结果(前提是该值是标量值) 如果我理解正确,标量值是表示固定值的值,而不是值的范围或集合或对象
一般来说,我对SQL非常陌生,所以我不太理解引用末尾的附加语句。查询的结果何时为非标量值?是不是一个查询只是从其结果中的一行返回多个列?如果是这样的话,如果这些结果不能存储在变量中,如何在MySQL脚本中有意义地使用它们呢?标量值有一列和一行。您不能将这样的多值结果分配给MySQL会话变量 但您可以将多个列分配给多个变量
SELECT a, b, c FROM mytable INTO @varA, @varB, @varC;
有关更多详细信息,请参阅。这样的查询是标量子查询。这样的子查询有两个重要属性:
- 子查询只返回一列
- 子查询最多返回一行
NULL
这是一个子查询。您可以使用选择和指定多个值:=
:
select @var1 := col1, @val2 := col2
from . . .;
(前提是该值是标量值)=(如果出现一行/一列结果集,则允许此值)