如何在mysql中匹配结果中的单个字符?

时间:2017-09-30 22:59:42

标签: 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天工作。

1 个答案:

答案 0 :(得分:0)

解决。感谢BitAccesser。我将天数转换为数字然后通过php,我使用similar_text函数来比较结果。