Quiero ser capaz de pasar algo a una consulta SQL para determinar si quiero seleccionar solo aquellos en los que cierta columna es nula. Si sólo estaba construyendo una cadena de consulta en lugar de utilizar variables ligadas, que haría algo como:¿Cómo puedo seleccionar las filas que son nulas usando consultas enlazadas en DBI de Perl?
if ($search_undeleted_only)
{
$sqlString .= " AND deleted_on IS NULL";
}
pero quiero utilizar consultas consolidados. ¿Esta sería la mejor manera?
my $stmt = $dbh->prepare(...
"AND (? = 0 OR deleted_on IS NULL) ");
$stmt->execute($search_undeleted_only);
Eso está bien, pero póngalo al revés (la? = - 1 parte primero), ya que muchas bases de datos SQL donde las cláusulas cortocircuitan (es decir, no molestará evaluar la parte posterior de una instrucción O si la primera parte es verdadera ya que no hay manera de que evalúe a nada más que cierto). –
Robert tiene razón, '? = - 1' debería ir primero – SquareCog
Espero que no les importe, pero voy a editar su respuesta para poner el? = - 1 primero solo para mejorar la respuesta. –