MySQLは順序に基づいてintで列を更新しますか?
順序に基づいてintで列を更新する構文は次のとおりです
set @yourVariableName=0; update yourTableName set yourColumnName=(@yourVariableName:=@yourVariableName+1) order by yourColumnName ASC;
上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです
mysql> create table updateColumnDemo -> ( -> Id int, -> OrderCountryName varchar(100), -> OrderAmount int -> ); Query OK, 0 rows affected (1.76 sec)
挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。
クエリは次のとおりです
mysql> insert into updateColumnDemo(Id,OrderCountryName) values(10,'US'); Query OK, 1 row affected (0.46 sec) mysql> insert into updateColumnDemo(Id,OrderCountryName) values(20,'UK'); Query OK, 1 row affected (0.98 sec) mysql> insert into updateColumnDemo(Id,OrderCountryName) values(30,'AUS'); Query OK, 1 row affected (0.77 sec) mysql> insert into updateColumnDemo(Id,OrderCountryName) values(40,'France'); Query OK, 1 row affected (1.58 sec)
selectステートメントを使用してテーブルのすべてのレコードを表示します。
クエリは次のとおりです
mysql> select *from updateColumnDemo;
以下は出力です
+------+------------------+-------------+ | Id | OrderCountryName | OrderAmount | +------+------------------+-------------+ | 10 | US | NULL | | 20 | UK | NULL | | 30 | AUS | NULL | | 40 | France | NULL | +------+------------------+-------------+ 4 rows in set (1.00 sec)
これは、順序に基づいてintで列を更新するためのクエリです
mysql> set @sequenceNumber=0; Query OK, 0 rows affected (0.00 sec) mysql> update updateColumnDemo -> set OrderAmount=(@sequenceNumber:=@sequenceNumber+1) -> order by OrderAmount ASC; Query OK, 4 rows affected (0.25 sec) Rows matched: 4 Changed: 4 Warnings: 0
テーブルレコードをもう一度確認しましょう。
クエリは次のとおりです
mysql> select *from updateColumnDemo;
以下は出力です
+------+------------------+-------------+ | Id | OrderCountryName | OrderAmount | +------+------------------+-------------+ | 10 | US | 1 | | 20 | UK | 2 | | 30 | AUS | 3 | | 40 | France | 4 | +------+------------------+-------------+ 4 rows in set (0.00 sec)
-
数値のユーザー定義変数を使用したMySQLORDERBY?
まずテーブルを作成しましょう- mysql> create table DemoTable1898 ( Number int ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1898 values(10); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1898
-
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