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

MySQLの列ごとにレコードを並べ替え、最後に空のレコードを配置するにはどうすればよいですか?


列ごとの順序を取得し、最後に空のレコードを配置するには、ORDER Byを使用し、MySQLの「isnull」を使用します。構文は次のとおりです-

select *from yourTableName order by if(yourColumName = ’ ’ or yourColumName is null,1,0),yourColumnName;

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

mysql> create table emptyCellsAtEnd
   −> (
   −> ProductId varchar(100)
   −> );
Query OK, 0 rows affected (0.65 sec)

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

mysql> insert into emptyCellsAtEnd values('');
Query OK, 1 row affected (0.23 sec)

mysql> insert into emptyCellsAtEnd values('P-1');
Query OK, 1 row affected (0.21 sec)

mysql> insert into emptyCellsAtEnd values('P-2');
Query OK, 1 row affected (0.14 sec)

mysql> insert into emptyCellsAtEnd values('');
Query OK, 1 row affected (0.15 sec)

mysql> insert into emptyCellsAtEnd values('P-3');
Query OK, 1 row affected (0.18 sec)

mysql> insert into emptyCellsAtEnd values('P-4');
Query OK, 1 row affected (0.09 sec)

mysql> insert into emptyCellsAtEnd values('P-9');
Query OK, 1 row affected (0.11 sec)

mysql> insert into emptyCellsAtEnd values('');
Query OK, 1 row affected (0.15 sec)

mysql> insert into emptyCellsAtEnd values('P-8');
Query OK, 1 row affected (0.17 sec)

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

mysql> select *from emptyCellsAtEnd;

以下は出力です-

+-----------+
| ProductId |
+-----------+
|           |  
| P-1       |
| P-2       |
|           |
| P-3       |
| P-4       |
| P-9       |
|           |
| P-8       |
+-----------+
9 rows in set (0.00 sec)

これで、最初に説明した、最後に空のセルを配置するためのクエリを実装できます。最後に空のセルを配置するためのクエリは次のとおりです-

mysql> select *from emptyCellsAtEnd
−> order by if(ProductId = '' or ProductId is null,1,0),ProductId;

以下は出力です-

+-----------+
| ProductId |
+-----------+
| P-1       |
| P-2       |
| P-3       |
| P-4       |
| P-8       |
| P-9       |
|           |
|           |
|           |
+-----------+
9 rows in set (0.00 sec)

  1. MySQLの列からの重複レコードの数を表示し、結果を並べ替えます

    このためには、列名にGROUPBYを使用する必要があります。カウントを取得するには、COUNT(*)を使用し、結果をORDERBYで並べ替えます。以下は構文です- select count(*) as anyAliasName from yourTableName group by yourColumnName order By yourAliasName DESC; まずテーブルを作成しましょう- mysql> create table DemoTable (    Number int ); Query OK, 0 rows affected (0.82 sec

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