MySQL IN()を使用してクエリを選択し、その中でソートしないようにします
IN()を使用すると、特定のフィールドの結果が並べ替えられます。これを回避するには、フィールドにORDER BYとFIND_IN_SET()を使用します。
find_in_set()を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです-
mysql> create table ProductStock -> ( -> ProductId int, -> ProductName varchar(20), -> ProductQuantity int, -> ProductPrice float -> ); Query OK, 0 rows affected (0.79 sec)>
これで、insertコマンドを使用してテーブルにいくつかのレコードを挿入できます。クエリは次のとおりです-
mysql> insert into ProductStock values(1,'Product-101',10,500.56); Query OK, 1 row affected (0.20 sec) mysql> insert into ProductStock values(25,'Product-111',5,150.00); Query OK, 1 row affected (0.21 sec) mysql> insert into ProductStock values(67,'Product-311',7,1000.50); Query OK, 1 row affected (0.60 sec) mysql> insert into ProductStock values(55,'Product-561',8,900.00); Query OK, 1 row affected (0.24 sec) mysql> insert into ProductStock values(75,'Product-221',15,670.56); Query OK, 1 row affected (0.14 sec)
selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです-
mysql> select *from ProductStock;
出力
+-----------+-------------+-----------------+--------------+ | ProductId | ProductName | ProductQuantity | ProductPrice | +-----------+-------------+-----------------+--------------+ | 1 | Product-101 | 10 | 500.56 | | 25 | Product-111 | 5 | 150 | | 67 | Product-311 | 7 | 1000.5 | | 55 | Product-561 | 8 | 900 | | 75 | Product-221 | 15 | 670.56 | +-----------+-------------+-----------------+--------------+ 5 rows in set (0.00 sec)
クエリにfind_in_set()を使用するためのクエリは次のとおりです-
mysql> select *from ProductStock -> where ProductId IN(25,55,67,75,1) -> order by find_in_set(ProductId,'25,55,67,75,1');
出力
+-----------+-------------+-----------------+--------------+ | ProductId | ProductName | ProductQuantity | ProductPrice | +-----------+-------------+-----------------+--------------+ | 25 | Product-111 | 5 | 150 | | 55 | Product-561 | 8 | 900 | | 67 | Product-311 | 7 | 1000.5 | | 75 | Product-221 | 15 | 670.56 | | 1 | Product-101 | 10 | 500.56 | +-----------+-------------+-----------------+--------------+ 5 rows in set (0.31 sec)
-
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
-
単一のクエリでのMySQLUNIONSELECTおよびIN句
まずテーブルを作成しましょう- mysql> create table DemoTable1 -> ( -> StudentId int, -> StudentName varchar(20) -> ); Query OK, 0 rows affected (1.24 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1 values(210,'Adam'