Computer >> Máy Tính >  >> Lập trình >> MySQL

Cách tốt nhất để lưu trữ sự kiện hàng tuần trong MySQL?

Hãy để chúng tôi xem cách tốt nhất để lưu trữ các sự kiện hàng tuần trong MySQL. Để làm được điều đó, trước tiên hãy tạo một bảng mới và bao gồm các trường cho mỗi ngày.

mysql> create table WeeklyEventDemo
   -> (
   -> ID int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> EventName varchar(20),
   -> Monday tinyint(1),
   -> Tuesday tinyint(1),
   -> Wednesday tinyint(1),
   -> Thursday tinyint(1),
   -> Friday tinyint(1),
   -> Saturday tinyint(1),
   -> Sunday tinyint(1),
   -> StartDate date,
   -> EndDate date
   -> );
Query OK, 0 rows affected (0.55 sec)

Chèn một số bản ghi trong bảng bằng lệnh chèn. Truy vấn như sau -

mysql> insert into WeeklyEventDemo(EventName,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday,StartDate,EndDate) values('Event-1',0,0,0,0,1,0,0,'2018-03-21','2019-03-08');
Query OK, 1 row affected (0.14 sec)
mysql> insert into WeeklyEventDemo(EventName,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday,StartDate,EndDate) values('Event-2',0,0,0,0,0,1,0,'2018-03-21','2019-03-08');
Query OK, 1 row affected (0.16 sec)

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau -

mysql> select *from WeeklyEventDemo;

Sau đây là kết quả

+----+-----------+--------+---------+-----------+----------+--------+----------+--------+------------+------------+
| ID | EventName | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday | StartDate  | EndDate    |
+----+-----------+--------+---------+-----------+----------+--------+----------+--------+------------+------------+
|  1 | Event-1   | 0      | 0       | 0         | 0        | 1      | 0       | 0       | 2018-03-21 | 2019-03-08 |
|  2 | Event-2   | 0      | 0       | 0         | 0        | 0      | 1       | 0       | 2018-03-21 | 2019-03-08 |
+----+-----------+--------+---------+-----------+----------+--------+----------+--------+------------+------------+
2 rows in set (0.00 sec)

Sau đây là truy vấn để nhận các sự kiện hàng tuần trong MySQL

mysql> select *from WeeklyEventDemo where Friday=1;

Sau đây là kết quả

+----+-----------+--------+---------+-----------+----------+--------+----------+--------+------------+------------+
| ID | EventName | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday | StartDate  | EndDate    |
+----+-----------+--------+---------+-----------+----------+--------+----------+--------+------------+------------+
|  1 | Event-1   | 0      | 0       | 0         | 0        | 1      | 0        | 0      | 2018-03-21 | 2019-03-08 |
+----+-----------+--------+---------+-----------+----------+--------+----------+--------+------------+------------+
1 row in set (0.00 sec)