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

MYSQL:Làm cách nào tôi có thể tìm thấy 'ngày thứ hai cuối cùng' (Vấn đề về hiệu suất)

Nếu bạn không sử dụng MySQL cổ, bạn có thể bọc nó trong một hàm được lưu trữ.

CREATE FUNCTION `LastMonday`() RETURNS DATETIME    
  RETURN DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) ;

và sau đó gọi

select LastMonday() as LastMonday

Cập nhật:

Nếu bạn đang gặp sự cố về hiệu suất, bạn có thể duy trì giá trị trong một biến phiên. Bằng cách đó, bạn có thể chắc chắn rằng nó sẽ chỉ được tính một lần.

set @LastMonday=LastMonday();
select @Lastmonday; 

(trong truy vấn đơn giản này, dĩ nhiên là không có gì khác biệt ...)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP password_verify không hoạt động với cơ sở dữ liệu

  2. Quyền của người dùng MySQL

  3. MySQL Hiển thị Chỉ mục trong Cơ sở dữ liệu

  4. Giới hạn kết quả từ bảng đã tham gia thành một hàng

  5. pymysql fetchall () kết quả như từ điển?