sirve que para ejemplos descargar comandos caracteristicas aprender sql

que - ¿Qué significa "DONDE 1" en SQL?



sql ejemplos (3)

No lo hace Significa ALWAYS TRUE por lo que no tendrá ningún impacto de filtrado en su consulta. El planificador de consultas probablemente ignorará esa cláusula.

Generalmente se usa cuando construyes una consulta del lado del cliente concatenando las condiciones de filtrado.

Por lo tanto, si su consulta base se almacena en una cadena como esta (el ejemplo está en PHP, pero ciertamente se aplica a muchos otros idiomas):

$sql = "select * from foo where 1 ";

Entonces, solo puede concatenar muchas condiciones de filtrado con una cláusula AND independientemente de que sea la primera condición que esté utilizando o no:

// pseudo php follows... if ($filter_by_name) { $sql = $sql . " and name = ? "; } if ($filter_by_number) { $sql = $sql . " and number = ? "; } // so on, and so forth.

A veces, phpMyAdmin genera consultas como:

SELECT * FROM `items` WHERE 1 LIMIT 0 , 30

Me pregunto si WHERE 1 tiene algún significado en una consulta como esa.


Supongo que es un artefacto de concatenación de cadenas: si no se especifican las condiciones, se genera un "1". De esa manera, no tiene que decidirse si la palabra clave WHERE debe ser de salida o no.

Además, siempre puede emitirlo y simplemente concatenar condiciones con "AND" y "OR". No tiene que decidir que la primera condición no debe comenzar con la palabra clave AND, OR.


WHERE 1 es un sinónimo de "verdadero" o "todo".

Es un acceso directo para que no tengan que eliminar la cláusula where del SQL generado.

De lo contrario, escribirías algo como esto:

$sql = "SELECT * FROM `errors`"; if ($hasWhereClause == true) { $sql .= " WHERE $whereClause"; } $sql .= "LIMIT 0 , 30";