MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLをif条件で更新できますか?


MySQLはIF条件とCASEステートメントで更新できます。この目的のために、最初にテーブルを作成しましょう。テーブルを作成するためのクエリ-

mysql> create table UpdateWithIfCondition
   −> (
   −> BookId int,
   −> BookName varchar(200)
   −> );
Query OK, 0 rows affected (0.60 sec)

これで、insertコマンドを使用してテーブルにレコードを挿入できます。クエリは次のとおりです-

mysql> insert into UpdateWithIfCondition values(1000,'C in Depth');
Query OK, 1 row affected (0.12 sec)

mysql> insert into UpdateWithIfCondition values(1001,'Introduction to Java');
Query OK, 1 row affected (0.14 sec)

selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです-

mysql> select *from UpdateWithIfCondition;

以下は出力です-

+--------+----------------------+
| BookId | BookName             |
+--------+----------------------+
| 1000   | C in Depth           |
| 1001   | Introduction to Java |
+--------+----------------------+
2 rows in set (0.00 sec)

if条件を使用して、値「CinDepth」を値「IntroductiontoC」で更新し、1001を値2000で更新してみましょう。クエリは次のとおりです-

mysql> update UpdateWithIfCondition
   −> set BookName = if(BookName = 'C in Depth','Introduction to C',BookName),
   −> BookId = if(BookId = 1001,2000,BookId);
Query OK, 2 rows affected (0.43 sec)
Rows matched: 2 Changed: 2 Warnings: 0

上記では、両方の列の値を更新しました。以下は、2つの値の両方が更新されているかどうかを確認するためのクエリです-

mysql> select *from UpdateWithIfCondition;

以下は、if-

を使用して値が正常に更新されたことを示す出力です。
+--------+----------------------+
| BookId | BookName             |
+--------+----------------------+
| 1000   | Introduction to C    |
| 2000   | Introduction to Java |
+--------+----------------------+
2 rows in set (0.00 sec)

  1. 特定の条件でレコードを更新するMySQLストアドプロシージャ?

    このために、PROCEDUREのWHERE句と一緒にUPDATEコマンドを使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> Id int,    -> FirstName varchar(20),    -> LastName varchar(20)    -> ); Query OK, 0 rows affected (0.56 sec) 挿入コマンド-を使用して、テーブル

  2. 1つのMySQLクエリで2つの列を更新します

    このためには、SETコマンドを1回だけ使用する必要があります。まずテーブルを作成しましょう- mysql> create table DemoTable1909    (    Id int NOT NULL,    FirstName varchar(20),    LastName varchar(20)    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> ins