MySQLで特定の値を一番上に並べ替えますか?
ソートするには、ORDERBY句を使用する必要があります。構文は次のとおりです-
SELECT *FROM yourTableName ORDER BY yourColumnName='yourValue' DESC,yourIdColumnName;
上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです-
mysql> create table SortCertainValues -> ( -> Id int NOT NULL AUTO_INCREMENT, -> Name varchar(20), -> CountryName varchar(10), -> PRIMARY KEY(Id) -> ); Query OK, 0 rows affected (1.36 sec)
挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです-
mysql> insert into SortCertainValues(Name,CountryName) values('Adam','US'); Query OK, 1 row affected (0.35 sec) mysql> insert into SortCertainValues(Name,CountryName) values('John','UK'); Query OK, 1 row affected (0.74 sec) mysql> insert into SortCertainValues(Name,CountryName) values('Bob','US'); Query OK, 1 row affected (0.20 sec) mysql> insert into SortCertainValues(Name,CountryName) values('Carol','Denmark'); Query OK, 1 row affected (0.32 sec) mysql> insert into SortCertainValues(Name,CountryName) values('Sam','US'); Query OK, 1 row affected (0.19 sec) mysql> insert into SortCertainValues(Name,CountryName) values('David','France'); Query OK, 1 row affected (0.13 sec) mysql> insert into SortCertainValues(Name,CountryName) values('Maxwell','AUS'); Query OK, 1 row affected (0.25 sec) mysql> insert into SortCertainValues(Name,CountryName) values('Kevin','NewZealand'); Query OK, 1 row affected (0.29 sec)
selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです-
mysql> select *from SortCertainValues;
以下は出力です-
+----+---------+-------------+ | Id | Name | CountryName | +----+---------+-------------+ | 1 | Adam | US | | 2 | John | UK | | 3 | Bob | US | | 4 | Carol | Denmark | | 5 | Sam | US | | 6 | David | France | | 7 | Maxwell | AUS | | 9 | Kevin | NewZealand | +----+---------+-------------+ 8 rows in set (0.00 sec)
これは、特定の値を先頭に並べ替えるクエリです。 CountryName USを一番上に設定しました。つまり、USCountryName-
のすべてのレコードを設定しました。mysql> select *from SortCertainValues order by CountryName='US' DESC,Id;
以下は出力です-
+----+---------+-------------+ | Id | Name | CountryName | +----+---------+-------------+ | 1 | Adam | US | | 3 | Bob | US | | 5 | Sam | US | | 2 | John | UK | | 4 | Carol | Denmark | | 6 | David | France | | 7 | Maxwell | AUS | | 9 | Kevin | NewZealand | +----+---------+-------------+ 8 rows in set (0.00 sec)
-
行の値を合計して結果を並べ替えるMySQLクエリ?
このために、ORDERBY句とともにGROUPBYを使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1499 -> ( -> StudentName varchar(20), -> StudentMarks int -> ); Query OK, 0 rows affected (0.46 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert in
-
特定の最後の文字列文字でソートするMySQLクエリ?
このために、CASEステートメントを使用できます。並べ替えるには、ORDERBY句を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable -> ( -> ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> ClientName varchar(20) -> ); Query OK, 0 rows affected (0.54 sec) 挿入コマンドを使用して