MySQLでvarcharフィールドを数値でソートしますか?
「LPAD(lower(column_name))」は、MySQLでvarcharフィールドを数値で並べ替えるために使用されます。例を見てみましょう。
まず、テーブルを作成します。 CREATEコマンドを使用してテーブルを作成します。
mysql> create table SortingvarcharDemo -> ( -> List varchar(10) -> ); Query OK, 0 rows affected (0.82 sec)
レコードはINSERTコマンドを使用して挿入されます。
mysql> insert into SortingvarcharDemo values("99"); Query OK, 1 row affected (0.12 sec) mysql> insert into SortingvarcharDemo values("9"); Query OK, 1 row affected (0.17 sec) mysql> insert into SortingvarcharDemo values("199"); Query OK, 1 row affected (0.19 sec) mysql> insert into SortingvarcharDemo values("1"); Query OK, 1 row affected (0.11 sec) mysql> insert into SortingvarcharDemo values("999"); Query OK, 1 row affected (0.10 sec) mysql> insert into SortingvarcharDemo values("78"); Query OK, 1 row affected (0.17 sec)
レコードを表示するには、selectコマンドを使用します。
mysql> select *from SortingvarcharDemo;
これが出力です。
+------+ | List | +------+ | 99 | | 9 | | 199 | | 1 | | 999 | | 78 | +------+ 6 rows in set (0.05 sec)
上記の出力では、リストは順序付けられていません。昇順でも降順でもありません。
昇順または降順で数値的に並べ替えるには、次の構文を使用します。
SELECT * FROM yourTableName ORDER BY LPAD(lower(Column_name), value1,values2) asc;
クエリは次のとおりです。
mysql> SELECT * FROM SortingvarcharDemo ORDER BY LPAD(lower(List), 6,0) asc;
これが出力です。
+------+ | List | +------+ | 1 | | 9 | | 78 | | 99 | | 199 | | 999 | +------+ 6 rows in set (0.17 sec)
上記では、結果は昇順で並べ替えられています。
-
MySQLでカスタムソートを実行する
MySQLでカスタム並べ替えを実行するには、ORDER BY FIELD()を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable -> ( -> Id int -> ); Query OK, 0 rows affected (0.82 sec) 挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します: mysql> insert into DemoTable values(101); Query OK, 1 row affe
-
MySQL:Group Byでフィールドを更新しますか?
GROUP BYでフィールドを更新するには、UPDATEコマンドでORDERBYLIMITを使用します- mysql> create table DemoTable2018 -> ( -> EmployeeId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> EmployeeName varchar(20), -> EmployeeSalary int -> ); Query OK, 0 r