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