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

rand()で注文し、MySQLでグループ化したままにしますか?


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

mysql> create table DemoTable
   -> (
   -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> StudentMarks int
   -> );
Query OK, 0 rows affected (0.58 sec)

挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。重複レコードも挿入しました-

mysql> insert into DemoTable(StudentMarks) values(98);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable(StudentMarks) values(98);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable(StudentMarks) values(78);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable(StudentMarks) values(78);
Query OK, 1 row affected (0.29 sec)
mysql> insert into DemoTable(StudentMarks) values(45);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable(StudentMarks) values(56);
Query OK, 1 row affected (0.09 sec)

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

mysql> select *from DemoTable;

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

+-----------+--------------+
| StudentId | StudentMarks |
+-----------+--------------+
| 1         | 98           |
| 2         | 98           |
| 3         | 78           |
| 4         | 78           |
| 5         | 45           |
| 6         | 56           |
+-----------+--------------+
6 rows in set (0.00 sec)

以下は、それらをグループ化したままrand()で並べ替えるクエリです-

mysql> select *from DemoTable order by rand(StudentMarks*100*RAND());

これにより、次の出力が生成されます。ここでは、マーク98レコードはグループ化されたままです-

+-----------+--------------+
| StudentId | StudentMarks |
+-----------+--------------+
| 3         | 78           |
| 6         | 56           |
| 5         | 45           |
| 4         | 78           |
| 1         | 98           |
| 2         | 98           |
+-----------+--------------+
6 rows in set (0.00 sec)

  1. MySQL ORDER BY ASCで、下部にNULLを表示しますか?

    これには、ORDERBYでCASEステートメントを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1937    (    Name varchar(20)    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1937 values('Chris'); Query OK, 1 row affect

  2. Cのrand()とsrand()

    rand() 関数rand()は、疑似乱数を生成するために使用されます。整数値を返し、その範囲は0からrand_max、つまり32767です。 C言語でのrand()の構文は次のとおりです。 int rand(void); これがC言語のrand()の例です 例 #include <stdio.h> #include<stdlib.h> int main() {    printf("%d\n", rand());    printf("%d", rand());   &nb