根據順序使用 int 更新 MySQL 中的列?
以下語法用於根據順序使用 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)
使用 insert 命令在表中插入一些記錄。
查詢如下
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)
廣告
資料結構
網路管理
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP