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

MySQLの値をゼロより上に保持してデクリメントするにはどうすればよいですか?


updateコマンドを使用してMySQLの値をデクリメントできます。これにより、値が0未満にならないように制限することもできます。

構文は次のとおりです-

update yourTableName set yourColumnName = yourColumnName - 1 where yourColumnName > 0;

値がゼロを下回らないようにするには、yourColumnName>0を使用できます。

上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリ。

mysql> create table DecrementDemo
   −> (
   −> DecrementValue int
   −> );
Query OK, 0 rows affected (0.62 sec)

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

mysql> insert into DecrementDemo values(15),(14),(13),(12),(11),(10);
Query OK, 6 rows affected (0.18 sec)
Records: 6 Duplicates: 0 Warnings: 0

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

mysql> select *from DecrementDemo;

以下は出力です-

+----------------+
| DecrementValue |
+----------------+
|             15 |
|             14 |
|             13 |
|             12 |
|             11 |
|             10 |
+----------------+
6 rows in set (0.00 sec)

これは、テーブルから値をデクリメントするためのクエリです-

mysql> update DecrementDemo
   −> set DecrementValue = DecrementValue - 1 where DecrementValue > 0;
Query OK, 6 rows affected (0.16 sec)
Rows matched: 6 Changed: 6 Warnings: 0

次のクエリを使用して、値が減少したかどうかを確認します-

mysql> select *from DecrementDemo;

以下は出力です-

+----------------+
| DecrementValue |
+----------------+
|             14 |
|             13 |
|             12 |
|             11 |
|             10 |
|              9 |
+----------------+
6 rows in set (0.00 sec)

  1. MySQLクエリを使用して4番目に高い値を取得するにはどうすればよいですか?

    4番目に高い値を取得するには、ORDERBYとともにLIMITOFFSETを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable (    Amount int ); Query OK, 0 rows affected (0.88 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(980); Query OK, 1 row affected (0.15 sec) mysql> insert into Dem

  2. MySQL LIKEクエリを使用して、%を含む列値を検索するにはどうすればよいですか?

    %を使用して列の値を検索する場合、構文は次のようになります- select * from yourTableName  where yourColumnName LIKE '\%%'; まずテーブルを作成しましょう- mysql> create table DemoTable1497    -> (    -> Name varchar(20)    -> ); Query OK, 0 rows affected (0.55 sec) insert-を使用して、テーブルにいくつかの