Tạo id ngẫu nhiên MySQL

Hàm này trong MySQL được sử dụng để trả về Mã định danh duy nhất toàn cầu [UUID] được tạo theo RFC 4122, “Không gian tên URN Mã định danh duy nhất toàn cầu [UUID]”. Nó được thiết kế như một số duy nhất trên toàn cầu. Hai giá trị UUID dự kiến ​​sẽ khác biệt, ngay cả khi chúng được tạo trên hai máy chủ độc lập. Trong MySQL, giá trị UUID là số 128 bit được biểu thị dưới dạng chuỗi utf8 và định dạng theo số thập lục phân sẽ như sau

Thí dụ -

aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee

Ở đây, ba số đầu tiên được tạo từ các phần thấp, trung bình và cao của dấu thời gian. Như bạn có thể thấy rằng ở định dạng trên, mã chữ số vị trí thứ tư sẽ duy trì tính duy nhất theo thời gian và mã vị trí thứ năm sẽ cung cấp tính duy nhất về không gian và đó là số nút IEEE 802

cú pháp

UUID[]

Tham số.
Phương thức này không có bất kỳ tham số nào.
Trả về.
Nó trả về một số Mã định danh duy nhất toàn cầu.

Ví dụ-1.
Tạo giá trị Mã định danh duy nhất toàn cầu với sự trợ giúp của Hàm UUID.

SELECT UUID[] 
AS UUID_Value ;

đầu ra

UUID_VALUEfbe516f6-3e39-11eb-b897-0862660ccbd4

Ví dụ-2.
Bất cứ khi nào chúng ta sử dụng hàm UUID, chúng ta sẽ nhận được giá trị Mã định danh duy nhất toàn cầu khác nhau. Hãy kiểm tra nó.

  SELECT UUID[] 
AS  
UUID_VALUE1, 
UUID[] 
AS UUID_VALUE2, 
UUID[] 
AS UUID_VALUE3 ;

đầu ra

UUID_VALUE1UUID_VALUE2UUID_VALUE3e762634c-3e41-11eb-b897-0862660ccbd4e7626367-3e41-11eb-b897-0862660ccbd4e7626368-3e41-11eb-b897-0862660ccbd4

Ví dụ-3.
Trong ví dụ này, chúng tôi sẽ sử dụng UUID làm khóa chính trong bảng. Để minh họa, hãy tạo một bảng có tên OrderDetails.

CREATE TABLE OrderDetails[
   OrderId BINARY[16] PRIMARY KEY,
   ProductName VARCHAR[100] NOT NULL,
   Price DECIMAL[10, 2] NOT NULL,
   ExpectedDelivery DATE NOT NULL
];

Bây giờ, chèn dữ liệu vào bảng OrderDetails. Ở đây, chúng ta sẽ sử dụng hàm UUID và UUID_TO_BIN[] để gán giá trị trong cột OrderId

Tóm lược. trong hướng dẫn này, bạn sẽ học các kỹ thuật khác nhau để chọn các bản ghi ngẫu nhiên từ một bảng cơ sở dữ liệu trong MySQL

Đôi khi, bạn phải chọn các bản ghi ngẫu nhiên từ một bảng, chẳng hạn

  • Chọn một số bài đăng ngẫu nhiên trong blog và hiển thị chúng trong thanh bên
  • Chọn một trích dẫn ngẫu nhiên để hiển thị tiện ích "trích dẫn trong ngày"
  • Chọn ảnh ngẫu nhiên trong thư viện và sử dụng làm ảnh nổi bật

MySQL chọn các bản ghi ngẫu nhiên bằng cách sử dụng
SELECT UUID[] 
AS UUID_Value ;
2

MySQL không có bất kỳ câu lệnh tích hợp nào để chọn các hàng ngẫu nhiên từ một bảng. Để thực hiện điều này, bạn sử dụng hàm

SELECT UUID[] 
AS UUID_Value ;
3

Truy vấn sau đây chọn một hàng ngẫu nhiên từ bảng cơ sở dữ liệu

SELECT * FROM table_name ORDER BY RAND[] LIMIT 1;

Code language: SQL [Structured Query Language] [sql]

Hãy xem xét truy vấn chi tiết hơn

  • Hàm
    SELECT UUID[] 
    AS UUID_Value ;
    3 tạo một giá trị ngẫu nhiên cho mỗi hàng trong bảng
  • Mệnh đề

    SELECT * FROM table_name ORDER BY RAND[] LIMIT N;

    Code language: SQL [Structured Query Language] [sql]
    0 sắp xếp tất cả các hàng trong bảng theo số ngẫu nhiên do hàm
    SELECT UUID[] 
    AS UUID_Value ;
    3 tạo ra
  • Mệnh đề

    SELECT * FROM table_name ORDER BY RAND[] LIMIT N;

    Code language: SQL [Structured Query Language] [sql]
    2 chọn hàng đầu tiên trong tập kết quả được sắp xếp ngẫu nhiên

Nếu bạn muốn chọn ngẫu nhiên 63 bản ghi từ một bảng cơ sở dữ liệu, bạn cần thay đổi mệnh đề

SELECT * FROM table_name ORDER BY RAND[] LIMIT N;

Code language: SQL [Structured Query Language] [sql]
4 như sau

SELECT * FROM table_name ORDER BY RAND[] LIMIT N;

Code language: SQL [Structured Query Language] [sql]

Xem bảng

SELECT * FROM table_name ORDER BY RAND[] LIMIT N;

Code language: SQL [Structured Query Language] [sql]
5 sau đây từ cơ sở dữ liệu mẫu

Ví dụ sau chọn năm khách hàng ngẫu nhiên từ bảng

SELECT * FROM table_name ORDER BY RAND[] LIMIT N;

Code language: SQL [Structured Query Language] [sql]
5

UUID[]
3

Dùng thử

Lưu ý rằng bạn có thể nhận được một tập hợp kết quả khác vì nó là ngẫu nhiên

Kỹ thuật này hoạt động rất tốt với một chiếc bàn nhỏ. Tuy nhiên, nó sẽ chậm đối với bảng lớn vì MySQL phải sắp xếp toàn bộ bảng để chọn ngẫu nhiên

Tốc độ của truy vấn cũng phụ thuộc vào số hàng trong bảng. Bảng càng có nhiều hàng thì càng mất nhiều thời gian để tạo số ngẫu nhiên cho mỗi hàng

MySQL chọn các bản ghi ngẫu nhiên bằng mệnh đề

SELECT * FROM table_name ORDER BY RAND[] LIMIT N;

Code language: SQL [Structured Query Language] [sql]
7

Kỹ thuật này yêu cầu bảng có trường khóa chính tăng tự động và không có khoảng trống trong chuỗi

Truy vấn sau tạo một số ngẫu nhiên dựa trên cột khóa chính

UUID[]
5

Chúng ta có thể tham gia bảng với tập kết quả được trả về bởi truy vấn trên như sau

UUID[]
6

Sử dụng kỹ thuật này, bạn phải thực hiện truy vấn nhiều lần để lấy nhiều hơn một hàng ngẫu nhiên vì nếu bạn tăng giới hạn, truy vấn sẽ chỉ cung cấp cho bạn các hàng liên tiếp bắt đầu từ hàng được chọn ngẫu nhiên

Truy vấn sau đây trả về một khách hàng ngẫu nhiên từ bảng

SELECT * FROM table_name ORDER BY RAND[] LIMIT N;

Code language: SQL [Structured Query Language] [sql]
5

UUID[]
8

Dùng thử

MySQL chọn các bản ghi ngẫu nhiên bằng cách sử dụng các biến

Trong trường hợp, bảng có cột

SELECT * FROM table_name ORDER BY RAND[] LIMIT N;

Code language: SQL [Structured Query Language] [sql]
9 với các giá trị nằm trong phạm vi
UUID[]
30 và không có khoảng cách nào trong phạm vi, bạn có thể sử dụng kỹ thuật sau

  • Đầu tiên, chọn số ngẫu nhiên trong phạm vi 1. N
  • Thứ hai, chọn các bản ghi dựa trên các số ngẫu nhiên

Câu lệnh sau đây giúp bạn thực hiện điều này

SELECT UUID[] 
AS UUID_Value ;
1

Lưu ý rằng các biến do người dùng xác định là dành riêng cho kết nối. Điều đó có nghĩa là kỹ thuật này không thể được sử dụng với tổng hợp kết nối. Ngoài ra, khóa chính phải là kiểu số nguyên và các giá trị của nó phải theo thứ tự không có khoảng trống

Làm cách nào để tạo id ngẫu nhiên trong MySQL?

Trong MySQL, Hàm UUID[] trả về Mã định danh duy nhất toàn cầu tạo giá trị dài 36 ký tự là 5 phần số thập lục phân . Nếu bạn muốn tạo mật khẩu ngẫu nhiên, bạn có thể sử dụng chức năng này để tạo số ngẫu nhiên.

Làm cách nào tôi có thể tạo ID duy nhất?

Sử dụng UUID . UUID có một số phiên bản, nhưng phiên bản phù hợp để tạo id duy nhất là phiên bản 4. Và, mã đó sẽ tạo ra một cái gì đó như thế này. use a library called uuid to generate UUID. UUID has several versions, but the version that appropriate for generating unique id is version 4. And, that code will generate something like this.

Làm cách nào để chèn id ngẫu nhiên trong SQL?

SQL Server có chức năng tích hợp sẵn để tạo số ngẫu nhiên, đó là Hàm toán học RAND[] . Hàm toán học RAND trả về một giá trị float ngẫu nhiên từ 0 đến 1. Nó có thể nhận một tham số hạt giống tùy chọn, là một biểu thức số nguyên [tinyint, smallint hoặc int] cung cấp giá trị hạt giống hoặc giá trị bắt đầu.

Làm cách nào để tạo số ký tự ID duy nhất cho khách hàng trong MySQL?

Vì vậy, hãy thử điều này. TẠO BẢNG dbo. tblUsers [ID INT IDENTITY[1,1] NOT NULL PRIMARY KEY CLUSTERED, UserID AS 'UID' + RIGHT['00000000' + CAST[ID AS VARCHAR[8]], 8]< . PERSISTED, ....

Chủ Đề