2

date「2013-04」であるデータベースからすべてのレコードを検索したい。

私が使う:

SELECT date, pastabos 
FROM aktai 
WHERE MATCH(uzsakovas) AGAINST ('Statyba ir Architektūra, UAB' IN BOOLEAN MODE) 
  AND MATCH(date) AGAINST ('2013-04*' IN BOOLEAN MODE) 

しかし、日付が ' に等しいレコードを取得するため、正しい答えは得られません2013-01-29', '2013-03-28'

私の質問は、MATCH() AGAINST()like 関数LIKE()"2013-04%"?で使用する方法です。

4

4 に答える 4

0

クエリの where 句で関数を使用すると、特にインデックス付きフィールドで、生産が遅くなる傾向があります。また、よくあることですが、日付フィールドに時間要素が含まれている場合、時間要素を無視すると、誤った結果が生じる可能性があります。

このアプローチを改善するのは非常に困難です。

 where yourdatefield >= StartDate
 and yourdatefield < the day after EndDate

あなたの場合、StartDate は 2013-04-01 で、EndDate の翌日は 2013-05-01 です。日付パラメーターを使用しているため、EndDate の翌日を取得することはそれほど難しくありません。

于 2013-04-30T23:10:09.623 に答える