回答編集履歴
1
追記
test
CHANGED
@@ -85,3 +85,55 @@
|
|
85
85
|
+-----------+
|
86
86
|
|
87
87
|
```
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
---
|
92
|
+
|
93
|
+
追記:
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
> 公式ドキュメントに「結果が複数行となるような値は代入できない」と明記されてはいませんが、
|
98
|
+
|
99
|
+
出来るとも書かれてない以上不可能なのですね。
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
MariaDBのドキュメントに記載があるかは見つけられていませんが、MySQLのリファレンスには下記の記載があります。
|
104
|
+
|
105
|
+
そのため、ユーザー定義変数では基本的に単一値のみを扱い、その値は基本的に文字列として取り扱われるものと思われます。
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
[MySQL :: MySQL 5.6 リファレンスマニュアル :: 9.4 ユーザー定義変数](https://dev.mysql.com/doc/refman/5.6/ja/user-variables.html)
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
> ユーザー変数には、限定された一連のデータ型の値 (整数、小数、浮動小数点、バイナリ文字列、非バイナリ文字列、または NULL 値) を割り当てることができます。
|
114
|
+
|
115
|
+
10 進値と実数値の割り当てでは、値の精度やスケールは維持されません。
|
116
|
+
|
117
|
+
許可されている型以外の型の値は、許可されている型に変換されます。
|
118
|
+
|
119
|
+
たとえば、時間を表すデータ型や空間データ型の値は、バイナリ文字列に変換されます。
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
> ユーザー変数に非バイナリ (文字) 文字列値を割り当てた場合、その変数には文字列と同じ文字セットと照合順序が含まれます。
|
124
|
+
|
125
|
+
ユーザー変数の強制性は暗黙的です。(これはテーブルカラム値と同等の強制性です。)
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
> ユーザー変数に割り当てられたビット値は、バイナリ文字列として扱われます。
|
130
|
+
|
131
|
+
ビット値を数値としてユーザー変数に割り当てるには、CAST() または +0 を使用します。
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
> 結果セットでユーザー変数の値が選択された場合、それは文字列としてクライアントに返されます。
|
136
|
+
|
137
|
+
|
138
|
+
|
139
|
+
> 初期化されていない変数を参照する場合、その値は NULL で、型は文字列です。
|