私は試してみましたが、LIKE と GREATER 条件を使用してどのように選択できるか想像できません:
SELECT * FROM table WHERE date > '2011-12-31' AND date LIKE "%-12-31"
したがって、ユーザーdate
が次のように送信した場合: 1950-12-31
、投稿された日付よりも大きいすべての日付と、どの月と日が LIKE であるかを取得する必要があります。%-12-31
私は試してみましたが、LIKE と GREATER 条件を使用してどのように選択できるか想像できません:
SELECT * FROM table WHERE date > '2011-12-31' AND date LIKE "%-12-31"
したがって、ユーザーdate
が次のように送信した場合: 1950-12-31
、投稿された日付よりも大きいすべての日付と、どの月と日が 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 はパラメーターです。
HTH