Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Lấy hàng ngẫu nhiên có Name trùng lặp trong MySQL

Dùng WHERE Name='...' ORDER BY RAND() LIMIT 1. Tạo bảng:

mysql> CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name VARCHAR(20)
); Query OK, 0 rows affected (1.65 sec)

Chèn dữ liệu (Bob xuất hiện 3 lần):

mysql> INSERT INTO DemoTable(Name) VALUES('Chris'); Query OK, 1 row affected (0.19 sec)
mysql> INSERT INTO DemoTable(Name) VALUES('Bob');   Query OK, 1 row affected (0.11 sec)
mysql> INSERT INTO DemoTable(Name) VALUES('David'); Query OK, 1 row affected (0.22 sec)
mysql> INSERT INTO DemoTable(Name) VALUES('Bob');   Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable(Name) VALUES('Bob');   Query OK, 1 row affected (0.08 sec)

Hiển thị dữ liệu:

mysql> SELECT * FROM DemoTable;

Kết quả:

+----+-------+
| Id | Name  |
+----+-------+
| 1  | Chris |
| 2  | Bob   |
| 3  | David |
| 4  | Bob   |
| 5  | Bob   |
+----+-------+
5 rows in set (0.65 sec)

Lấy 1 hàng ngẫu nhiên trong số các hàng Name='Bob':

mysql> SELECT * FROM DemoTable WHERE Name='Bob' ORDER BY RAND() LIMIT 1;

Kết quả (ví dụ Id=5):

+----+------+
| Id | Name |
+----+------+
| 5  | Bob  |
+----+------+
1 row in set (0.00 sec)