mySQL seleziona IN range


84

È possibile definire un intervallo per la parte IN della query, qualcosa di simile

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

Invece di

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

Risposte:


157

Non puoi, ma puoi usare BETWEEN

SELECT job FROM mytable WHERE id BETWEEN 10 AND 15

Nota che BETWEENè inclusivo e includerà elementi con ID 10 e 15.

Se non vuoi l'inclusione, dovrai ricorrere all'uso degli operatori >e <.

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

1
cosa devo fare se voglio interrogare i primi 5 elementi nella mia tabella? per esempio gli id ​​sono 1,2,5,6,7,8. In questo caso l'approccio precedente restituirà solo 1,2,5.
Soroosh

1
Non sono sicuro cosa intendi. Suggerirei di scrivere una nuova domanda con maggiori dettagli.
ESG

6

Per selezionare i dati nell'intervallo numerico è possibile utilizzare BETWEENche è inclusivo.

SELECT JOB FROM MYTABLE WHERE ID BETWEEN 10 AND 15;

Qual è la differenza con la risposta di ESG?
Torsten

3
Un duplicato contenente spam tranne questo è una cattiva pratica quando si inseriscono la colonna e la tabella in lettere maiuscole. I nomi delle colonne non fanno distinzione tra maiuscole e minuscole, quindi va bene (come in, non produrrà un errore), ma i nomi delle tabelle fanno distinzione tra maiuscole e minuscole nella maggior parte dei sistemi Unix. (Ma su Windows il nome della tabella non fa distinzione tra maiuscole e minuscole, quindi questa query potrebbe riuscire lì) ... Tutto sommato è un buon piano per non confondere le persone con giochi non necessari con le maiuscole. Il modo in cui questo viene ribaltato dopo la risposta di ESG va oltre le mie capacità.
jeroen e
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.