4

たとえば、BETWEEN 1 から 100 の MySQL クエリの入力範囲を受け入れるプログラムがあります。ユーザーは Web ページから範囲を選択して、クエリを BETWEEN 100 と (無限大に関係なく) にすることができます。必要がない限り、無限選択のためだけに MySQL クエリを変更したくありません。BETWEEN 100 と * はありますか? もしそうなら、構文は何ですか?ありがとう!

4

2 に答える 2

16

いいえ、BETWEEN 句でワイルドカードを使用する方法はありません。ただし、タイプに可能な最小値/最大値を使用でき、これにより同じ効果が得られます。

BIGINTたとえば、型(signed)を持つ列がある場合9223372036854775807、これはそのデータ型で可能な最大値であるため、上限として使用できます。

WHERE x BETWEEN 100 AND 9223372036854775807

整数値の制限は、ここにリストされています。


もう 1 つの明白な解決策は、端の 1 つが無制限の場合に>=or<=の代わりに使用することです。BETWEENしかし、あなたが言ったように、これにはクエリを変更する必要があります。

WHERE x >= 100

より複雑なクエリを使用し、無制限を意味する場合は NULL を提供することで、クエリの変更を回避する方法もあります。

WHERE (x >= @lowerbound OR @lowerbound IS NULL)
AND (x <= @upperbound OR @upperbound IS NULL)
于 2012-10-07T09:42:55.613 に答える