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

数値のユーザー定義変数を使用したMySQLORDERBY?


まずテーブルを作成しましょう-

mysql> create table DemoTable1898
   (
   Number int
   );
Query OK, 0 rows affected (0.00 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable1898 values(10);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1898 values(70);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1898 values(30);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1898 values(50);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1898 values(40);
Query OK, 1 row affected (0.00 sec)

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

mysql> select * from DemoTable1898;

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

+--------+
| Number |
+--------+
|     10 |
|     70 |
|     30 |
|     50 |
|     40 |
+--------+
5 rows in set (0.00 sec)

これは、数値のユーザー定義変数-

を使用してORDERBYを実行するためのクエリです。
mysql> set @limitValue:=1;
Query OK, 0 rows affected (0.00 sec)
mysql> set  @query:=CONCAT('select * from DemoTable1898 order by ',@limitValue);
Query OK, 0 rows affected (0.00 sec)
mysql> prepare stmt from @query;
Query OK, 0 rows affected (0.00 sec)
Statement prepared
mysql> execute stmt;

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

+--------+
| Number |
+--------+
|     10 |
|     30 |
|     40 |
|     50 |
|     70 |
+--------+
5 rows in set (0.00 sec)

準備クエリの割り当てを解除するクエリは次のとおりです-

mysql> deallocate prepare stmt;
Query OK, 0 rows affected (0.00 sec)

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

  2. 「order」という名前のテーブルでのMySQLクエリエラー?

    注文は予約語です。予約語を引き続き使用するには、列名の前後にバッククォートを使用する必要があります。まずテーブルを作成しましょう- mysql> create table `order`    -> (    -> StudentId int    -> ); Query OK, 0 rows affected (1.78 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into `order` values(101); Query OK, 1