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

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)

上記では、結果は昇順で並べ替えられています。


  1. 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

  2. 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