簡體   English   中英

查詢結果什么時候是非標量的?

[英]When would a query result be non-scalar?

我正在閱讀有關賦值運算符的MySQL文檔 ,並在:=運算符的部分中說

右側的值可以是文字值,另一個存儲值的變量或任何產生標量值的合法表達式,包括查詢結果(假設該值是標量值)。

如果我正確理解,則標量值是表示固定值的值,而不是值或對象的范圍或集合。

一般來說,對於SQL來說是非常新的知識,我不太理解引號末尾的括號內的語句。 查詢結果什么時候會是非標量值? 是當查詢只是從其結果的一行中返回多個列時的查詢嗎? 如果是這樣,如果不能將這些結果存儲在變量中,那么如何在MySQL腳本中有意義地使用它們呢?

這樣的查詢是量子查詢。 這樣的子查詢具有兩個重要的屬性:

  • 子查詢僅返回一列。
  • 子查詢最多返回一行。

如果子查詢不返回任何行,則分配的值為NULL

那是一個子查詢 您可以使用SELECT:=分配多個值。

select @var1 := col1, @val2 := col2
from . . .;

標量值具有一列和一行。 您不能將這樣的多值結果分配給MySQL會話變量。

但是您可以將多個列分配給多個變量。

SELECT a, b, c FROM mytable INTO @varA, @varB, @varC;

有關更多詳細信息,請參見http://dev.mysql.com/doc/refman/5.7/en/select-into.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM