回答編集履歴
1
追記
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 で、型は文字列です。
|