-1
我正在检测时间冲突,但我被困在天冲突。这是我的表如何匹配mysql中结果中的单个字符?
INSERT INTO yourTable (starttime, endtime, day)
VALUES
('09:00:00', '11:00:00', 'MT'),
('10:00:00', '12:00:00', 'M'),
('06:00:00', '10:00:00', 'MTW'),
('06:00:00', '10:00:00', 'ThFS'),
('11:00:00', '12:00:00', 'S'),
('15:00:00', '16:00:00', 'F'),
('06:00:00', '09:00:00', 'M');
,这是查询
SELECT DISTINCT
t1.starttime,
t1.endtime,
t1.day
FROM yourTable t1
LEFT JOIN yourTable t2
ON
(t1.starttime > t2.starttime AND t1.starttime < t2.endtime) OR
(t1.endtime > t2.starttime AND t1.endtime < t2.endtime)
WHERE
t2.starttime IS NOT NULL;
结果
starttime endtime day
09:00:00 11:00:00 MT
10:00:00 12:00:00 M
06:00:00 10:00:00 MTW
06:00:00 10:00:00 ThFS
11:00:00 12:00:00 S
06:00:00 09:00:00 M
,应该是
starttime endtime day
09:00:00 11:00:00 MT
10:00:00 12:00:00 M
06:00:00 10:00:00 MTW
06:00:00 09:00:00 M
我想MATCH AGAINST
但并不好。谢谢您的帮助。 顺便说一句:我尝试使用LIKE,但仍然无法在MTW和TTh天。
可怕的桌子设计!规范你的数据库!解释日可以包括多个平日,由他们的第一封信给您的听众!拆分为每行单日,并使用周日数而不是周日名称。添加一个ID字段(整数自动增量)作为主键。然后,您可以在当天加入并过滤冲突。 – BitAccesser
对不起,表格设计。我以某个地方为例。谢谢你的想法。我会在成功后发布更新。 – stoow