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

MySQLのselectorderbyは、文字列(数値ではない)のように機能しますか?


列のデータ型がvarcharの場合は、次の構文を使用できます-

select yourColumnName FROM yourTableName ORDER BY yourColumnName +0 DESC;

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

mysql> create table selectOrderdemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> Name varchar(100),
   -> RankNumber varchar(100)
   -> );
Query OK, 0 rows affected (0.55 sec)

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

mysql> insert into selectOrderdemo(Name,RankNumber) values('Larry',-100);
Query OK, 1 row affected (0.23 sec)
mysql> insert into selectOrderdemo(Name,RankNumber) values('John',50);
Query OK, 1 row affected (0.13 sec)
mysql> insert into selectOrderdemo(Name,RankNumber) values('Bob',0);
Query OK, 1 row affected (0.14 sec)
mysql> insert into selectOrderdemo(Name,RankNumber) values('Carol',-110);
Query OK, 1 row affected (0.23 sec)
mysql> insert into selectOrderdemo(Name,RankNumber) values('David',98);
Query OK, 1 row affected (0.21 sec

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

mysql> select *from selectOrderdemo;

これが出力です-

+----+-------+------------+
| Id | Name  | RankNumber |
+----+-------+------------+
| 1  | Larry | -100       |
| 2  | John  | 50         |
| 3  | Bob   | 0          |
| 4  | Carol | -110       |
| 5  | David | 98         |
+----+-------+------------+
5 rows in set (0.00 sec)

これは、番号のように機能する順序を選択するためのクエリです。

ケース1 −結果を降順で表示したい場合、クエリは次のようになります-

mysql> select RankNumber FROM selectOrderdemo ORDER BY RankNumber+0 DESC;

これが出力です-

+------------+
| RankNumber |
+------------+
| 98         |
| 50         |
| 0          |
| -100       |
| -110       |
+------------+
5 rows in set (0.00 sec)

ケース2 −結果を昇順で表示する場合、クエリは次のようになります-

mysql> select RankNumber FROM selectOrderdemo ORDER BY RankNumber+0;

これが出力です-

+------------+
| RankNumber |
+------------+
| -110       |
| -100       |
| 0          |
| 50         |
| 98         |
+------------+
5 rows in set (0.00 sec)

ケース3 −すべての列が必要な場合は、以下のクエリを使用してください-

mysql> select * FROM selectOrderdemo ORDER BY RankNumber+0 DESC;

これが出力です-

+----+-------+------------+
| Id | Name  | RankNumber |
+----+-------+------------+
| 5  | David | 98         |
| 2  | John  | 50         |
| 3  | Bob   | 0          |
| 1  | Larry | -100       |
| 4  | Carol | -110       |
+----+-------+------------+
5 rows in set (0.00 sec)

  1. MySQLで条件付きのクエリを注文して選択する方法は?

    以下は構文です- select * from yourTableName order by yourColumnName=0,yourColumnName; まずテーブルを作成しましょう- mysql> create table DemoTable1348    -> (    -> Amount int    -> ); Query OK, 0 rows affected (0.80 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into

  2. 文字列の長さに基づいて星の数を追加するMySQLクエリ?

    このために、RPAD()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1626     -> (     -> Name varchar(20)     -> ); Query OK, 0 rows affected (0.37 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1626 values('Chris'); Query OK, 1