我已经尝试过,但无法想象如何选择 LIKE 和 GREATER 条件:
SELECT * FROM table WHERE date > '2011-12-31' AND date LIKE "%-12-31"
因此,如果用户发送date
如下:1950-12-31
,我需要获取所有日期大于发布日期以及哪个 MONTH 和 DAY 是 LIKE%-12-31
我已经尝试过,但无法想象如何选择 LIKE 和 GREATER 条件:
SELECT * FROM table WHERE date > '2011-12-31' AND date LIKE "%-12-31"
因此,如果用户发送date
如下:1950-12-31
,我需要获取所有日期大于发布日期以及哪个 MONTH 和 DAY 是 LIKE%-12-31
不要使用LIKE
. 试试这个
SELECT *
FROM table
WHERE
date > '2011-12-31'
AND MONTH(date) = 12
AND DAY(date) = 31
我没有要测试的 MySQL,但你明白我希望的想法。
Select * from table1 where date> urdate
And extract(month from date) = extract (month from Urdate)
And extract(day from date) = extract (day from urdate)
;
考虑到这些解决方案需要全表扫描,我不会推荐任何需要在等式左侧使用函数的解决方案;大桌子上的禁忌。
我建议在构造查询之前确定两个日期范围,然后简单地使用 BETWEEN。还要在日期列上添加索引。
select * from table1 where date between :1 and :2
其中 :1 和 :2 是参数。
高温高压