0
我有一个mysql语句来检索表中的值,该表称为dateTable(我在此表中有date(STRING)和dayId(INT)列),我想用特定日期格式检索值,如果该日期不存在确切的日期格式yyyy-mm-dd,则搜索是否具有格式dd-mm的日期,否则检索该日期的星期几的记录。下面的查询返回所有可能性(日期格式为yyy-mm-dd,日期格式为mm-dd,日期为星期几,即在这种情况下为4)MY SQL IF声明
请注意,我试过CASE WHEN,它给了我同样的结果
SELECT
*
FROM
dateTable
WHERE
dateTableId = 4
AND IF(STR_TO_DATE(date, '%Y-%m-%d') = DATE_FORMAT('2015-08-19', '%Y-%m-%d'), date=STR_TO_DATE(date, '%Y-%m-%d'),
IF(STR_TO_DATE(date, '%m-%d') = DATE_FORMAT('2015-08-19', '%m-%d'), date=STR_TO_DATE(date, '%m-%d'),dayId = DAYOFWEEK('2015-08-19')))
但是这是一个大表,并且这是一个子查询,在这种情况下可以做UNION .... – Dev
@Dev。 。 。这似乎是你的逻辑要求。如果您担心,您可以发布*另一个*问题,提供有关您实际使用的查询的更多详细信息。 –