0

データベースに INT 型として YYYYMMDD の形式で格納されている日付を選択したい。ここで、ユーザーが選択した日付を入力するシナリオがあり、ユーザーが入力した値以下の日付のみを抽出したいと考えています。

次のSQLステートメントから始めました。

"SELECT date FROM transactionRegister WHERE date<='"+dateInput+"'";

しかし、これは私のアプリを非効率にするステートメントによって満たされるすべての結果をロードします。

最初の結果をカーソルにロードするだけです。

4

2 に答える 2

1

1つの結果が必要な場合は、を介してDBに伝えますLIMIT 1。これにより、1 つの結果が保証されます (正しい結果ではない可能性があります)。

これを修正するには、DB に結果の順序を "closest first" に指示しますORDER BY date DESC LIMIT 1

于 2013-10-15T20:30:52.997 に答える
0

SQLステートメントの最後に「制限」を使用するだけです。SQL ステートメントは次のようにする必要があります。

"SELECT date FROM transactionRegister WHERE date<='"+dateInput+"' ORDER BY date DESC Limit 1";

制限には、指定した数だけが表示されます。たとえば、Limit 20 はステートメントの 20 行のみを返します。

于 2013-10-15T20:32:17.953 に答える