es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Python sqlite3 cómo buscar dinámicamente valores nulos.

Estoy intentando seleccionar, modificar o eliminar filas usando sqlite3 que pueden tener un valor nulo en una columna. También estoy tratando de hacer esto de forma dinámica para poder buscar el valor nulo utilizando el literal de Python None.

Esto funciona perfectamente bien:

name = "John"
cursor.execute("DELETE FROM users WHERE name = ?", (name,))

Sin embargo, esto no funciona:

name = None
cursor.execute("DELETE FROM users WHERE name = ?", (name,))

Entiendo que SQL es extraño y tengo que usar is null, pero ¿hay una forma elegante (y segura) de hacer esto en una sola línea?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para buscar valores nulos en una columna utilizando el literal None de Python en SQLite, es necesario cambiar la consulta para utilizar is null en lugar del operador de igualdad. Aquí tienes un ejemplo de cómo eliminar filas con valores nulos basados en un literal dinámico de Python:

    name = None
    cursor.execute("DELETE FROM users WHERE name is ?", (name,))
    

    Al reemplazar el operador = por is, SQLite encontrará correctamente los valores nulos en la columna name. Esta es una forma segura y elegante de realizar la operación en una sola línea utilizando literales de Python.

Comments are closed.