[解決済み】MySQL。クエリの結果からユーザー変数を設定する
2022-04-06 14:48:06
質問
MySQLでクエリの結果に基づいてユーザー変数を設定することは可能ですか?
私が実現したいのは、次のようなものです。
USER
と
GROUP
は一意である)。
set @user = 123456;
set @group = select GROUP from USER where User = @user;
select * from USER where GROUP = @group;
なお、可能なのは分かっていますが、ネストされたクエリでこれを実行することは望んでいません。
どのように解決するのですか?
はい、しかし、あなたは変数の割り当てをクエリに移動する必要があります。
SET @user := 123456;
SELECT @group := `group` FROM user WHERE user = @user;
SELECT * FROM user WHERE `group` = @group;
テストケースです。
CREATE TABLE user (`user` int, `group` int);
INSERT INTO user VALUES (123456, 5);
INSERT INTO user VALUES (111111, 5);
結果
SET @user := 123456;
SELECT @group := `group` FROM user WHERE user = @user;
SELECT * FROM user WHERE `group` = @group;
+--------+-------+
| user | group |
+--------+-------+
| 123456 | 5 |
| 111111 | 5 |
+--------+-------+
2 rows in set (0.00 sec)
ただし
SET
のどちらかです。
=
または
:=
は、代入演算子として使用することができます。しかし、他の文の中では、代入演算子は必ず
:=
であって
=
なぜなら
=
は、SET文以外では比較演算子として扱われます。
UPDATEです。
また、下記のコメントも参考にしてください。
SET @user := 123456;
SELECT `group` FROM user LIMIT 1 INTO @group;
SELECT * FROM user WHERE `group` = @group;
関連
-
[解決済み】#1273 - 不明な照合順序:'utf8mb4_unicode_520_ci'
-
[解決済み] "sqlstate[23000]: 整合性制約違反 "を有効な制約で
-
[解決済み] MySQLクエリ GROUP BY 日/月/年
-
[解決済み] mysqlのテーブルからユニークキーを削除する方法
-
[解決済み] MySQLの更新datetimeフィールド
-
[解決済み] MySQLでコマンドラインを使用してユーザーアカウントのリストを取得するにはどうすればよいですか?
-
[解決済み] MySQLのクエリ結果をCSV形式で出力するにはどうすればよいですか?
-
[解決済み] MySQL - SELECTクエリに基づくUPDATEクエリ
-
[解決済み] MySql でクエリ実行時に only_full_group_by に関連するエラーが発生する。
-
[解決済み】MySQLのDatetimeカラムにデフォルト値を設定する方法とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】MySQLのDESCRIBE [table]に相当するSQLiteはあるか?]
-
[解決済み] MySQLのforeachループ
-
[解決済み] MySQLで「一意のテーブル/エイリアスでない」場合
-
[解決済み] エラー 1115 (42000)。不明な文字セットです。'utf8mb4'
-
[解決済み] JDBC経由でMySQLにUTF-8を挿入しようとすると、"不正な文字列値 "と表示される?
-
[解決済み] MYSQLのTIMESTAMP比較
-
[解決済み] アプリでSSLを有効にしていない場合、AzureのMySQLサーバーへの接続に失敗するのはなぜですか?
-
[解決済み] エラー 1049 (42000)。不明なデータベース
-
[解決済み] MySQLから最後のN行を選択する
-
[解決済み] MongoDBのようにMySQLにもTTLがあるのでしょうか?