mySQL seleccione IN rango


84

¿Es posible definir un rango para la parte IN de la consulta, algo como esto?

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

En vez de

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

Respuestas:


153

No puedes, pero puedes usar BETWEEN

SELECT job FROM mytable WHERE id BETWEEN 10 AND 15

Tenga en cuenta que BETWEENes inclusivo e incluirá elementos con id 10 y 15.

Si no desea la inclusión, tendrá que volver a utilizar los operadores >y <.

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

1
¿Qué debo hacer si quiero consultar los primeros 5 elementos de mi tabla? por ejemplo, los identificadores son 1,2,5,6,7,8. En este caso, el enfoque anterior devolverá solo 1,2,5.
Soroosh

1
No estoy seguro de lo que quieres decir. Sugeriría escribir una nueva pregunta con más detalles.
ESG

6

Para seleccionar datos en un rango numérico, puede usar el BETWEENque sea inclusivo.

SELECT JOB FROM MYTABLE WHERE ID BETWEEN 10 AND 15;

¿Cuál es la diferencia con la respuesta de ESG?
Torsten

2
Duplicado con spam, excepto que esta es una mala práctica al poner la columna y la tabla en mayúsculas. Los nombres de las columnas no distinguen entre mayúsculas y minúsculas, por lo que está bien (como en, no producirá un error), pero los nombres de las tablas distinguen entre mayúsculas y minúsculas en la mayoría de los sistemas Unix. (Pero en Windows, el nombre de la tabla tampoco distingue entre mayúsculas y minúsculas, por lo que esta consulta tendría éxito allí) ... En general, es un buen plan para no confundir a las personas con juegos innecesarios con mayúsculas. Cómo se vota a favor de esto después de la respuesta de ESG me supera.
jeroen e
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.