列をエイリアスとして使用して Update in Case ステートメントを使用する方法
P粉214089349
2023-09-05 17:54:59
<p>3 つの列 (id int、udf varchar(20)、date_of_sale datetime) を持つ sales_data というテーブルがあります。
時間を6時間に調整してdate_of_sale列の平日を見つけようとしています。ここで、udf列をdate_of_saleに対応する平日に更新する必要があります。選択クエリのアイデアはありますが、udf 列を更新するにはどうすればよいですか? </p>
<pre class="brush:php;toolbar:false;">putdata として Weekday(subtime(s.date_of_sale ,'6:0:0')) を選択します。
場合
WHEN 平日(subtime(s.date_of_sale ,'6:0:0'))=0 THEN '日曜日'
WHEN 平日(subtime(s.date_of_sale ,'6:0:0'))=1 THEN '月曜日'
WHEN 平日(subtime(s.date_of_sale ,'6:0:0'))=2 THEN '火曜日'
WHEN 平日(subtime(s.date_of_sale ,'6:0:0'))=3 THEN '水曜日'
WHEN 平日(subtime(s.date_of_sale ,'6:0:0'))=4 THEN '木曜日'
WHEN 平日(subtime(s.date_of_sale ,'6:0:0'))=5 THEN '金曜日'
WHEN 平日(subtime(s.date_of_sale ,'6:0:0'))=6 THEN '土曜日'
UDFとして終了
sales_data から;</pre></p>
処理を簡素化するために、 生成された列 (https://dev.mysql.com/doc/refman/8.0/en/create-table-generated-columns.html) を追加します。データの不整合を回避します:
リーリーデモを見る: https://dbfiddle.uk/2d5iIvBv
(同じ平日はありません。地域によるものでしょうか?)
上記のクエリはほぼ完成しました。更新ステートメントを追加するだけです。
以下のクエリは機能するはずです。
リーリー