请问各位大神,像下面这种sql语句应该怎么简化呢?感觉重复的代码太多了,请大神给予指点,谢谢!
SELECT
id,
(
CASE
WHEN UNIX_TIMESTAMP(start_time) > UNIX_TIMESTAMP(CURDATE()) THEN 0
WHEN UNIX_TIMESTAMP(start_time) = UNIX_TIMESTAMP(CURDATE()) THEN 1
END
) state,
(
CASE
WHEN UNIX_TIMESTAMP(start_time) > UNIX_TIMESTAMP(CURDATE()) THEN CONCAT('未开始-', title)
WHEN UNIX_TIMESTAMP(start_time) = UNIX_TIMESTAMP(CURDATE()) THEN CONCAT('进行中-', title)
END
) title,
(
CASE
WHEN UNIX_TIMESTAMP(start_time) > UNIX_TIMESTAMP(CURDATE()) THEN '还没有开始哦'
WHEN UNIX_TIMESTAMP(start_time) = UNIX_TIMESTAMP(CURDATE()) THEN '已经开始了'
END
) msg
FROM
content
WHERE
STATUS = 1
多嘴说一句,这样的在SQL做字符串并接,真的适合维护吗?再加上SQL语法可读性不高,我说你定义一个函数再调用,这样真的能减少代码量吗?我觉得在这方面还是交给别的语言来操作更好一点。