mySQL select IN range


84

クエリのIN部分の範囲を次のように定義することは可能ですか?

SELECT job FROM mytable WHERE id IN (10..15);

の代わりに

SELECT job FROM mytable WHERE id IN (10,11,12,13,14,15);

回答:


153

できませんが、使用できます BETWEEN

SELECT job FROM mytable WHERE id BETWEEN 10 AND 15

これBETWEENは包括的であり、ID10と15の両方のアイテムが含まれることに注意してください。

含める必要がない場合は、>and<演算子の使用にフォールバックする必要があります。

SELECT job FROM mytable WHERE id > 10 AND id < 15

1
テーブルの最初の5つのアイテムをクエリする場合はどうすればよいですか?たとえば、IDは1,2,5,6,7,8です。この場合、上記のアプローチは1,2,5だけを返します。
Soroosh 2018年

1
よく分からない。詳細を記載した新しい質問を書くことをお勧めします。
ESG

6

数値範囲のデータを選択するBETWEENには、包括的を使用できます。

SELECT JOB FROM MYTABLE WHERE ID BETWEEN 10 AND 15;

ESGの回答との違いは何ですか?
トルステン

2
これ以外のスパムの複製は、列とテーブルを大文字にするのは悪い習慣です。列名では大文字と小文字が区別されないため(エラーは発生しません)、テーブル名ではほとんどのUnixシステムで大文字と小文字が区別されます。(ただし、Windowsでは、table-nameでも大文字と小文字が区別されないため、このクエリはそこで成功します)...全体として、大文字で不必要に遊ぶことで人々を混乱させないようにすることをお勧めします。ESGの回答が私を超えた後、これがどのように賛成されるか。
jeroene19年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.