ケーストリック; 「空のセット」処理
MySQLの古いバージョン(4+)で「空のセット」を処理できる小さなハックで、機能はありません。
小さなリクエストを作成するとき、次の問題で停止しました。データベースにリクエストされた情報がありませんでした。 次のようになりました。
@var =(
選択する
ケース
いつ
t1.fieldはnullではありません
それから
t1.field
他に
1
field_nameとして終了
から
table1 t1
t1.tid = t2.idでtable2 t2に参加します
どこで
t1.field2 = '_UNEXISTING_IN_DB_VALUE_'
t1.tid descによる注文
制限1
);
このケースのブロックでは、関数、数学、論理演算などの単位を取得しようとしなかったため、何の助けにもなりませんでした。テストでは、「空のセット(0.06秒)」しかありませんでした。
松葉杖はすぐに次の形式で書かれたままにすることにしました。
set @ var2 =(if if(@var is null、1、@ var));
私の旧友は、解決策を見つけるのを手伝い、次のアプローチをアドバイスしました。名前の代わりに列番号を使用し、通常のカウントを使用します。 その結果、正しいクエリは次のようになります。
@var =(
選択する
ケース
いつ
カウント(1)> 0
それから
t1.field
他に
1
field_nameとして終了
から
table1 t1
t1.tid = t2.idでtable2 t2に参加します
どこで
t1.field2 = '_UNEXISTING_IN_DB_VALUE_'
t1.tid descによる注文
制限1
);
こちらもご覧ください:
dev.mysql.com/doc/refman/4.1/en/all-subqueries.html
All Articles