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

MySQLの2つの異なる列を使用したカスタムソート?


このためには、CASEステートメントとともにORDERBY句を使用します。まずテーブルを作成しましょう-

mysql> create table DemoTable1610
   -> (
   -> Marks int,
   -> Name varchar(20)
   -> ) ;
Query OK, 0 rows affected (0.51 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable1610 values(85,'John');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable1610 values(78,'Carol');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1610 values(78,'John');
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable1610 values(85,'Carol');
Query OK, 1 row affected (0.20 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select * from DemoTable1610;

これにより、次の出力が生成されます

+-------+-------+
| Marks | Name  |
+-------+-------+
|    85 | John  |
|    78 | Carol |
|    78 | John  |
|    85 | Carol |
+-------+-------+
4 rows in set (0.00 sec)

これは、MySQLの2つの異なる列を使用してカスタムソートするためのクエリです-

mysql> select * from DemoTable1610
   -> order by Marks,case when Name='Carol' then 1 else 0 end;

これにより、次の出力が生成されます

+-------+-------+
| Marks | Name  |
+-------+-------+
|    78 | John  |
|    78 | Carol |
|    85 | John  |
|    85 | Carol |
+-------+-------+
4 rows in set (0.00 sec)

  1. MySQLテーブルの2つの列にfloat値を分割しますか?

    浮動小数点値を2列に分割するために、最初の列は小数点以下の値になります。 2番目の列には、小数点以下の値があります。このために、CAST()と一緒にSUBSTRING_INDEX()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1951    (    Value1 varchar(20)    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> ins

  2. カスタム関数を使用してMySQLで日付を検証する

    MySQLで日付を検証するカスタム関数を作成しましょう- mysql> set global log_bin_trust_function_creators=1; Query OK, 0 rows affected (0.03 sec) mysql> delimiter // mysql> create function isValidDate(actualDate varchar(255)) returns int    -> begin    -> declare flag int;    ->