He visto en algunos programadores usar 1 = 0 en donde condición para seleccionar consulta, por qué usan esta condición.por qué damos en consulta sql 1 = 0
Respuesta
El único uso posible para eso sería evitar que la consulta devuelva ninguna fila. Lo he hecho ocasionalmente para probar la lógica de tipo "sin resultados encontrados".
en el servidor SQL, puede crear rápidamente una copia de una tabla sin ningún tipo de datos de este tipo
select * into Newtable
from Oldtable
where 1 = 0
esto creará una nueva tabla con la misma estructura que la vieja mesa de
Otra opción es para devolver un conjunto de resultados vacío
He visto algunas utilidades usar esa sintaxis para recopilar metadatos sobre una tabla. Pueden ejecutar una consulta como select * from sometable where 1=0
para obtener "eficientemente" las columnas de la tabla sin ningún dato.
no funcionaría en MySQL, creo. Para eso sirve 'SHOW COLUMNS'. – ceejayoz
@ceejayoz: Gracias por la información. No sabía eso sobre MySQL; Supuse (aparentemente incorrectamente) que devolvería un conjunto de resultados vacío, que aún tendría las columnas. Funciona en otras implementaciones SQL (algunas al menos). –
Lo he utilizado en código al generar el SQL basado en una lista de valores de la casilla de verificación. Por ejemplo, si permito al usuario elegir entre una lista de frutas:
Manzanas Naranjas Peras
... y seleccionar manzanas y naranjas, mi pseudo código se parece a:
string sqlWhere = "select * from fruit where 1 = 0"
if (FruitList.Any()) {
sqlWhere += " or code in ("
foreach (Fruit in FruitList)
sqlWhere += string.Format("'{0}',");
/*Add the close parens*/
sqlWhere = sqlWhere.Substring(0,sqlWhere.Length-2) + ")";
}
que solo devolverá los valores que seleccionó el usuario. Si no seleccionan ninguna fruta, no se devuelven resultados.
* Tenga en cuenta que este código no tiene en cuenta la inyección de SQL. Sólo un ejemplo de por qué es posible ver el
where 1 = 0
Creo que su Y debe convertirse en un quirófano. – ceejayoz
Tienes razón. Actualizado. –
Se podría utilizar una consulta como esta como un 'ping' para comprobar si su conexión a la base de datos sigue abierta y la base de datos es saludable y así sucesivamente - si no obtiene resultados, lo es, pero si obtiene algún tipo de error, hay un problema. Escribirías la consulta contra algún tipo de tabla de sistema. Dependiendo de su base de datos, es posible que pueda hacer algo más simple: en PostgreSQL, puede simplemente decir select 1;
, y en Oracle, he visto select 1 from dual;
. Si su base de datos no tiene la capacidad de manejar expresiones de flotación libre en selecciones, y no tiene equivalente de dual, podría hacer algo como select * from sometable where 0 = 1;
.
- 1. ¿por qué usar WHERE 1 = 0 instrucción en SQL?
- 2. ¿Por qué una consulta sql tiene "donde 1 = 1"
- 3. ¿Por qué ~ 0 es -1?
- 4. ¿Por qué 0 && 1 es 1 mientras que 1 && 0 es 0 en ruby?
- 5. 0 en [1, 2] == cierto, ¿por qué?
- 6. ¿Por qué el resultado 2 + 1 y 0 es 0?
- 7. La consulta de actualización de Linq genera ¿Dónde 0 = 1?
- 8. ¿Por qué -1 >> 1 es -1? ¡Y 1 >> 1 es 0!
- 9. En csh, ¿por qué 4 - 3 + 1 == 0?
- 10. ¿Qué significa! 1 y! 0 en Javascript?
- 11. ¿Qué significa "WHERE 1" en SQL?
- 12. ¿Qué significan -1, 1 y 0 en este código Javascript?
- 13. ¿Por qué es el resultado de 1/3 == 0?
- 14. ORDEN DE SQL POR consulta
- 15. (-1 >> 1) == -1 - ¿Por qué?
- 16. ¿Por qué falla mi consulta SQL?
- 17. ¿Por qué es (Infinity | 0) === 0?
- 18. ¿Por qué ISNUMERIC ('.') Devuelve 1?
- 19. ¿Por qué esta consulta LINQ-to-SQL obtiene una NotSupportedException?
- 20. ANSI consulta Sql para forzar el retorno 0 registros
- 21. Implicar bit con constante 1 o 0 en SQL Server
- 22. C99 - ¿por qué son falsos y verdaderos definidos como 0 y 1 y no como ((bool) 0) y ((bool) 1)?
- 23. ¿Cómo creo una consulta SQL parametrizada? ¿Por qué debería?
- 24. parámetros consulta sql en buscar por sql
- 25. ¿Por qué SELECCIONAR 2^3 devuelve 1 en SQL Server?
- 26. ¿Por qué (1 >> 0x80000000) == 1?
- 27. ¿Por qué falla Convert.ToBoolean ("0")?
- 28. 1/252 = 0 en C#?
- 29. Normalizando de [0.5 - 1] a [0 - 1]
- 30. ¿Qué hace "seleccionar ((seleccionar (s), $ | = 1) [0])" hacer en Perl?
aún más simples con mismo efecto: 'select * into NEWTABLE de oldtable donde 0' – Jpsy