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

MySQLで行の値を1つ減らしますか?


MySQLでは、UPDATEコマンドを使用して行の値を1ずつ増減できます。構文は次のとおりです-

UPDATE yourTableName set yourColumnName = yourColumnName-1 where condition;

行の値を1つ減らすテーブルを作成しましょう。以下はクエリ-

です。
mysql> create table IncrementAndDecrementValue
   −> (
   −> UserId int,
   −> UserScores int
   −> );
Query OK, 0 rows affected (0.60 sec)

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

mysql> insert into IncrementAndDecrementValue values(101,20000);
Query OK, 1 row affected (0.13 sec)

mysql> insert into IncrementAndDecrementValue values(102,30000);
Query OK, 1 row affected (0.20 sec)

mysql> insert into IncrementAndDecrementValue values(103,40000);
Query OK, 1 row affected (0.11 sec)

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

mysql> select *from IncrementAndDecrementValue;

以下は出力です;

+--------+------------+
| UserId | UserScores |
+--------+------------+
|    101 | 20000      |
|    102 | 30000      |
|    103 | 40000      |
+--------+------------+
3 rows in set (0.00 sec)

これは、where条件でUserScores値を1減らすためのクエリです。

mysql> update IncrementAndDecrementValue set UserScores = UserScores-1 where UserId = 103;
Query OK, 1 row affected (0.41 sec)
Rows matched: 1 Changed: 1 Warnings: 0

値が更新されているかどうかを確認しましょう。クエリは次のとおりです-

mysql> select *from IncrementAndDecrementValue;

以下は、行の値を正常にデクリメントしたことを示す出力です-

+--------+------------+
| UserId | UserScores |
+--------+------------+
|    101 | 20000      |
|    102 | 30000      |
|    103 | 39999      |
+--------+------------+
3 rows in set (0.00 sec)

  1. 列の値を置き換えるMySQLクエリ

    まずテーブルを作成しましょう- mysql> create table DemoTable (    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    Score int ); Query OK, 0 rows affected (0.45 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable(Score) values(56); Query OK, 1 row affected (0.24 sec)

  2. MySQLでN番目の最大値を見つけるためのクエリ

    最初にテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> Value int    -> ); Query OK, 0 rows affected (0.59 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(40); Query OK, 1 row affected (0.26 sec) mysql> insert into Demo