Hướng dẫn mysql random number between - số ngẫu nhiên mysql giữa
Để có được giá trị ngẫu nhiên giữa hai giá trị, hãy sử dụng phương thức mysql rand () với sàn (). Cú pháp như sau. select FLOOR( RAND() * (maximumValue-minimumValue) + minimumValue) as anyVariableName; Hãy để chúng tôi kiểm tra với một số giá trị tối đa và tối thiểu. Giá trị tối đa mà chúng tôi đang xem xét là 200 và tối thiểu là 100. Số ngẫu nhiên sẽ nằm trong khoảng từ 100 đến 200 bao gồm 100 đến 200. Các truy vấn là như sau. mysql> select FLOOR( RAND() * (200-100) + 100) as RandomValue; Sau đây là đầu ra. +-------------+ | RandomValue | +-------------+ | 144 | +-------------+ 1 row in set (0.00 sec) Bây giờ nếu chúng ta sẽ chạy cùng một truy vấn một lần nữa, đầu ra sẽ khác nhau. mysql> select FLOOR( RAND() * (200-100) + 100) as RandomValue; Sau đây là đầu ra có giá trị khác vì đây là những giá trị ngẫu nhiên giữa một phạm vi chúng tôi đặt ở trên. +-------------+ | RandomValue | +-------------+ | 184 | +-------------+ 1 row in set (0.00 sec)
Cập nhật vào ngày 30 tháng 3 năm 2019 22:30:24
Tôi có một cơ sở dữ liệu cho các bài viết và có thể muốn tạo một số nguyên ngẫu nhiên độc đáo cho mỗi bài viết để chúng có thể được truy cập thông qua URL như https://blablabla.com/articles/8373734, v.v. Tôi có thể đạt được điều đó trong phụ trợ Python, nhưng làm thế nào để chúng ta đạt được điều này trong các câu MySQL? Ví dụ: một bài viết mới đã được thực hiện và được chèn vào cơ sở dữ liệu:
URL_ID ở đây là số nguyên ngẫu nhiên duy nhất (1000 ~ 10000000) được tạo tự động. Tôi tin rằng ID chính và tự động tăng cường là cách tốt để giải quyết vấn đề này. Nhưng câu hỏi của tôi là:
Hỏi ngày 20 tháng 9 năm 2017 lúc 11:48Sep 20, 2017 at 11:48Sep 20, 2017 at 11:48Sep 20, 2017 at 11:48 null nullnullnullnull 1.08910 Huy hiệu bạc29 Huy hiệu đồng10 silver badges29 bronze badges10 silver badges29 bronze badges10 silver badges29 bronze badges 7
Đã trả lời ngày 20 tháng 9 năm 2017 lúc 11:52Sep 20, 2017 at 11:52Sep 20, 2017 at 11:52Sep 20, 2017 at 11:52 1 Bạn có thể sử dụng 8 hoặc nếu nó phải là số 9 cho điều đó.Đã trả lời ngày 20 tháng 9 năm 2017 lúc 12:24Sep 20, 2017 at 12:24Sep 20, 2017 at 12:24Sep 20, 2017 at 12:24 FelkfelkFelkFelkFelk 7.1902 Huy hiệu vàng36 Huy hiệu bạc59 Huy hiệu đồng2 gold badges36 silver badges59 bronze badges2 gold badges36 silver badges59 bronze badges2 gold badges36 silver badges59 bronze badges 4 Mặc dù các kỹ năng SQL của tôi hơi gỉ, tôi nghĩ bạn có thể muốn tạo một chức năng bằng cách sử dụng chức năng RAND.
Sau đó, một lần nữa, tại sao tạo ra một sự ồn ào như vậy trong khi bạn có thể sử dụng các cách khác để tạo "số ngẫu nhiên lớn hơn" Ví dụ: mysql> select FLOOR( RAND() * (200-100) + 100) as RandomValue;0 Đã trả lời ngày 20 tháng 9 năm 2017 lúc 12:36Sep 20, 2017 at 12:36Sep 20, 2017 at 12:36Sep 20, 2017 at 12:36 SchuereschuereSchuereSchuereSchuere 1.57019 huy hiệu bạc33 huy hiệu đồng19 silver badges33 bronze badges19 silver badges33 bronze badges19 silver badges33 bronze badges Logic được kết hợp với khóa chính của họ | Id, vì vậy chúng tôi không cần kiểm tra lại liệu dữ liệu có tồn tại hay không. mysql> select FLOOR( RAND() * (200-100) + 100) as RandomValue;1 https://gist.github.com/yogithesymbian/698b27138a5ba89d2a32e3fc7ddd3cfb Đã trả lời ngày 21 tháng 10 năm 2021 lúc 3:23Oct 21, 2021 at 3:23Oct 21, 2021 at 3:23Oct 21, 2021 at 3:23
Làm thế nào để tạo một số ngẫu nhiên duy nhất khi chèn vào MySQL?
0 1Thế hệ số duy nhất MySQLTạo một chuỗi 10 ký tự ngẫu nhiên duy nhất bằng MySQL?Tạo một chuỗi 10 ký tự ngẫu nhiên duy nhất bằng MySQL? 8 9 0 1Cơ sở dữ liệu.GuideMySQL UUID () - Tạo số nhận dạng duy nhất trong MySQLMySQL UUID () - Tạo số nhận dạng duy nhất trong MySQLmysql> select FLOOR( RAND() * (200-100) + 100) as RandomValue;07 mysql> select FLOOR( RAND() * (200-100) + 100) as RandomValue;08 mysql> select FLOOR( RAND() * (200-100) + 100) as RandomValue;09 mysql> select FLOOR( RAND() * (200-100) + 100) as RandomValue;10 +-------------+ | RandomValue | +-------------+ | 144 | +-------------+ 1 row in set (0.00 sec)51 mysql> select FLOOR( RAND() * (200-100) + 100) as RandomValue;12 mysql> select FLOOR( RAND() * (200-100) + 100) as RandomValue;13 Làm thế nào để tạo số ngẫu nhiên mà không lặp lại trong cơ sở dữ liệu bằng PHP?mysql> select FLOOR( RAND() * (200-100) + 100) as RandomValue;14 mysql> select FLOOR( RAND() * (200-100) + 100) as RandomValue;15 mysql> select FLOOR( RAND() * (200-100) + 100) as RandomValue;16 mysql> select FLOOR( RAND() * (200-100) + 100) as RandomValue;17 mysql> select FLOOR( RAND() * (200-100) + 100) as RandomValue;18 mysql> select FLOOR( RAND() * (200-100) + 100) as RandomValue;19 0 1 2 3Tạo số ngẫu nhiên duy nhất trong SQL Server 4 5 6 7 8 9Làm thế nào để tạo số ngẫu nhiên trong SQL Server?Tạo 6 chữ số số ngẫu nhiên duy nhất trong ví dụ mã MySQLTạo 6 chữ số số ngẫu nhiên duy nhất trong ví dụ mã MySQL 7
CREATE PROCEDURE GetRandomValue()
BEGIN
DECLARE newUrlId INT DEFAULT 0;
WHILE (
newUrlId = 0
OR IF EXISTS(SELECT 1 FROM yourTable WHERE url_id = newUrlId)
)
DO
SET newUrlId = SELECT FLOOR(RAND() * 999999)
END WHILE
RETURN newUrlId
END
CREATE PROCEDURE GetRandomValue()
BEGIN
DECLARE newUrlId INT DEFAULT 0;
WHILE (
newUrlId = 0
OR IF EXISTS(SELECT 1 FROM yourTable WHERE url_id = newUrlId)
)
DO
SET newUrlId = SELECT FLOOR(RAND() * 999999)
END WHILE
RETURN newUrlId
END
CREATE PROCEDURE GetRandomValue()
BEGIN
DECLARE newUrlId INT DEFAULT 0;
WHILE (
newUrlId = 0
OR IF EXISTS(SELECT 1 FROM yourTable WHERE url_id = newUrlId)
)
DO
SET newUrlId = SELECT FLOOR(RAND() * 999999)
END WHILE
RETURN newUrlId
END
CREATE PROCEDURE GetRandomValue()
BEGIN
DECLARE newUrlId INT DEFAULT 0;
WHILE (
newUrlId = 0
OR IF EXISTS(SELECT 1 FROM yourTable WHERE url_id = newUrlId)
)
DO
SET newUrlId = SELECT FLOOR(RAND() * 999999)
END WHILE
RETURN newUrlId
END
CREATE PROCEDURE GetRandomValue()
BEGIN
DECLARE newUrlId INT DEFAULT 0;
WHILE (
newUrlId = 0
OR IF EXISTS(SELECT 1 FROM yourTable WHERE url_id = newUrlId)
)
DO
SET newUrlId = SELECT FLOOR(RAND() * 999999)
END WHILE
RETURN newUrlId
END
CREATE PROCEDURE GetRandomValue()
BEGIN
DECLARE newUrlId INT DEFAULT 0;
WHILE (
newUrlId = 0
OR IF EXISTS(SELECT 1 FROM yourTable WHERE url_id = newUrlId)
)
DO
SET newUrlId = SELECT FLOOR(RAND() * 999999)
END WHILE
RETURN newUrlId
END
CREATE PROCEDURE GetRandomValue()
BEGIN
DECLARE newUrlId INT DEFAULT 0;
WHILE (
newUrlId = 0
OR IF EXISTS(SELECT 1 FROM yourTable WHERE url_id = newUrlId)
)
DO
SET newUrlId = SELECT FLOOR(RAND() * 999999)
END WHILE
RETURN newUrlId
END
|