質問するログイン新規登録

回答編集履歴

1

追記

2017/10/28 22:19

投稿

退会済みユーザー
answer CHANGED
@@ -41,4 +41,30 @@
41
41
  +-----------+
42
42
  | 10,9,8 |
43
43
  +-----------+
44
- ```
44
+ ```
45
+
46
+ ---
47
+ 追記:
48
+
49
+ > 公式ドキュメントに「結果が複数行となるような値は代入できない」と明記されてはいませんが、
50
+ 出来るとも書かれてない以上不可能なのですね。
51
+
52
+ MariaDBのドキュメントに記載があるかは見つけられていませんが、MySQLのリファレンスには下記の記載があります。
53
+ そのため、ユーザー定義変数では基本的に単一値のみを扱い、その値は基本的に文字列として取り扱われるものと思われます。
54
+
55
+ [MySQL :: MySQL 5.6 リファレンスマニュアル :: 9.4 ユーザー定義変数](https://dev.mysql.com/doc/refman/5.6/ja/user-variables.html)
56
+
57
+ > ユーザー変数には、限定された一連のデータ型の値 (整数、小数、浮動小数点、バイナリ文字列、非バイナリ文字列、または NULL 値) を割り当てることができます。
58
+ 10 進値と実数値の割り当てでは、値の精度やスケールは維持されません。
59
+ 許可されている型以外の型の値は、許可されている型に変換されます。
60
+ たとえば、時間を表すデータ型や空間データ型の値は、バイナリ文字列に変換されます。
61
+
62
+ > ユーザー変数に非バイナリ (文字) 文字列値を割り当てた場合、その変数には文字列と同じ文字セットと照合順序が含まれます。
63
+ ユーザー変数の強制性は暗黙的です。(これはテーブルカラム値と同等の強制性です。)
64
+
65
+ > ユーザー変数に割り当てられたビット値は、バイナリ文字列として扱われます。
66
+ ビット値を数値としてユーザー変数に割り当てるには、CAST() または +0 を使用します。
67
+
68
+ > 結果セットでユーザー変数の値が選択された場合、それは文字列としてクライアントに返されます。
69
+
70
+ > 初期化されていない変数を参照する場合、その値は NULL で、型は文字列です。