Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Xổ số php đưa ra các vấn đề về nhiều người chiến thắng

tôi nghĩ rằng bạn đã chọn sai định dạng lưu trữ cho các số đã chọn. Cách tiếp cận tiêu chuẩn là sử dụng các giá trị nhị phân có N-thứ bit được đặt nếu số N được chọn.

Hãy xem xét ví dụ này:người dùng chọn số "2 4 5 9 11". Đặt các bit tương ứng thành 1 sẽ cho '10100011010' là số thập phân 1306. Bây giờ xổ số chọn "4 7 9 12 13" là '1100101001000' ==6472. Thực hiện theo chiều dọc bit AND trên cả hai giá trị và đếm số bit được đặt trong kết quả:

SELECT BIT_COUNT(1306 & 6472)

điều này ngay lập tức cho chúng tôi biết rằng người dùng có 2 lựa chọn chính xác. Thật dễ dàng, bạn có thể chọn người chiến thắng "đầy đủ":

SELECT * FROM tickets WHERE BIT_COUNT(tickets.pick & lotto.pick) = 5

hoặc sắp xếp các vé theo số lần chọn đúng

SELECT * FROM tickets ORDER BY BIT_COUNT(tickets.pick & lotto.pick) DESC


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CHỌN cột khử chuẩn hóa thành các bản ghi riêng biệt?

  2. Hiệu suất UDF trong MySQL

  3. Cú pháp SQL SELECT - Được DBMS liệt kê

  4. MySQL ERROR 1005:Không thể tạo bảng (errno:150)

  5. Tự động tăng dần với chế độ ngủ đông