SQLの更新

1. レコードを変更する方法の概要:

  • 新しい値に設定します: UPDATE テーブル名 SET 列名=新しい値 [, 列名2=新しい値2] [WHERE 列名3=値3]
  • 既存の値に従って置換します: UPDATE table_name SET key1=replace(key1, 'コンテンツの検索', 'コンテンツで置換') [WHERE column_name3=value3]

2.ケース

(1) 試験用紙情報テーブル testing_info があり、テーブル構造は次の図に示されています。

提出済み タイプ ヌル 追加 デフォルト コメント
ID int(11) いいえ 自動増加 (ヌル) 自動インクリメントID
試験ID int(11) いいえ ユニ (ヌル) 紙のID
鬼ごっこ 文字(32) はい (ヌル) カテゴリラベル
困難 文字(8) はい (ヌル) 困難
間隔 int(11) いいえ (ヌル) 間隔
リリース時間 日付時刻 はい (ヌル) リリースタイム
--t1:
update examination_info
set tag = replace(tag,'PYTHON','Python')
where tag = 'PYTHON';

--t2:
update examination_info
set tag = 'Python'
where tag = 'PYTHON';

Examination_info テーブル内の PYTHON とタグ付けされたすべてのタグ フィールドを Python に変更してください。

(2) 長年にわたるユーザーの解答用紙記録を含む試験用紙解答記録テーブルexam_recordがあり、その構造は次のとおりです。

解答記録テーブル Exam_record:

submit_time は完了時刻です

提出済み タイプ ヌル 追加 デフォルト コメント
ID int(11) いいえ 自動増加 (ヌル) 自動インクリメントID
UID int(11) いいえ (ヌル) ユーザーID
試験ID int(11) いいえ (ヌル) 紙のID
始まる時間 日付時刻 いいえ (ヌル) 開始時間
submit_time 日付時刻 はい (ヌル) 提出時間
スコア tinyint(4) はい (ヌル) スコア
update exam_record
set score = 0,submit_time = '2099-01-01 00:00:00'
where start_time < '2021-09-01 00:00:00' and score is null;

2021 年 9 月 1 日より前に回答を開始した、exam_record テーブル内の未完了のレコードをすべて受動的完了に変更してください。つまり、完了時刻を「2099-01-01 00:00:00」に、スコアを 0 に変更してください。

おすすめ

転載: blog.csdn.net/weixin_48272780/article/details/128317901