MySQLのfield()関数?
field()関数は、値のリスト内の値のインデックス位置を返します。 field()関数とORDERBYを使用して値を並べ替えてみましょう。構文は次のとおりです。
SELECT *FROM yourTableName order by field(yourColumnName,yourValue1,yourValue2,yourValue3,yourValue4,.....N) desc;
上記の構文を理解するために、最初にテーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです。
mysql> create table OrderByDemo -> ( -> StudentId int -> ); Query OK, 0 rows affected (0.71 sec)
挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです。
mysql> insert into OrderByDemo values(101); Query OK, 1 row affected (0.19 sec) mysql> insert into OrderByDemo values(1010); Query OK, 1 row affected (0.56 sec) mysql> insert into OrderByDemo values(1001); Query OK, 1 row affected (0.12 sec) mysql> insert into OrderByDemo values(401); Query OK, 1 row affected (0.12 sec)
これで、selectステートメントを使用してテーブルのすべてのレコードを表示できます。クエリは次のとおりです。
mysql> select *from OrderByDemo;
以下は出力です。
+-----------+ | StudentId | +-----------+ | 101 | | 1010 | | 1001 | | 401 | +-----------+ 4 rows in set (0.00 sec)
これは、値で順序を並べ替えるクエリです。降順で並べ替えます。クエリは次のとおりです。
mysql> select *from OrderByDemo order by field(StudentId,101,401,1001,1010) desc;
以下は出力です。
+-----------+ | StudentId | +-----------+ | 1010 | | 1001 | | 401 | | 101 | +-----------+ 4 rows in set (0.00 sec)
-
同じフィールドでソート順を実行するMySQLクエリ
これには、ORDER BY IF()を使用します。 まずテーブルを作成しましょう- mysql> create table DemoTable801 ( Score int ); Query OK, 0 rows affected (0.69 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable801 values(30); Query OK, 1 row affected (0.19 sec) mysql> insert into DemoTable801 values(99); Que
-
フィールド値からコンマをカウントするMySQLクエリ?
以下は構文です- select length(yourColumnName) - length(replace(yourColumnName, ',', '')) as anyAliasName from yourTableName; まずテーブルを作成しましょう- mysql> create table DemoTable1510 -> ( -> Value varchar(50) -> ); Query OK, 0 rows affected (6.75