作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在制定一个广播时间表,我想在其中播放当前节目或即将播出的节目或最后是第二天的节目。如果它返回第二天的节目,我想在标题中添加一些内容,例如 CONCAT_WS("", "不要错过明天:", title)
。时间表采用 JSON 格式,因此我使用 JSON_EXTRACT
和 TIME_FORMAT
来比较小时值。这是当前有效的,除了它显示即将到来的节目或第二天的节目。如果有像“星期二”这样的日子,则它是今天的示例,而星期三是明天的示例。 BETWEEN
条件和下一个条件选择当前节目OR
今天即将播出的节目。我如何检查这些是否都不适用,如果是,请选择第二天并更新标题?
SELECT * FROM tableName WHERE visible = 1 AND
JSON_UNQUOTE(JSON_EXTRACT(schedule, '$.tuesday.active')) = 1
AND
(
(
TIME_FORMAT(NOW(), '%H:%i') BETWEEN
TIME_FORMAT(JSON_UNQUOTE(JSON_EXTRACT(schedule, '$.tuesday.time[0]')), '%H:%i') AND
TIME_FORMAT(JSON_UNQUOTE(JSON_EXTRACT(schedule, '$.tuesday.time[1]')), '%H:%i')
)
OR
(
TIME_FORMAT(JSON_UNQUOTE(JSON_EXTRACT(schedule, '$.tuesday.time[0]')), '%H:%i') > TIME_FORMAT(NOW(), '%H:%i') AND
TIME_FORMAT(JSON_UNQUOTE(JSON_EXTRACT(schedule, '$.tuesday.time[1]')), '%H:%i') < TIME_FORMAT(NOW(), '%H:%i')
)
OR
(
id = (SELECT id FROM tableName WHERE visible = 1 AND JSON_UNQUOTE(JSON_EXTRACT(schedule, '$.wednesday.active')) = 1 ORDER BY RAND() LIMIT 1)
)
)
LIMIT 1
最佳答案
我删除了第二个 OR 条件并添加了具有相同条件的 UNION,因此通过将其限制为 1,它会返回第一个选择的第一行,否则返回第二天的
关于mysql - 在 MySQL 的 WHERE 子句中使用 IF 来排序条件并更新列(节目表的列),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46919809/
我是一名优秀的程序员,十分优秀!