Пустые значения параметров SQL - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть запрос, который возвращает сумму ежемесячных продаж отдельных продуктов в моей базе данных. Запрос работает.

Вместо того, чтобы иметь значение для "=?", Есть пустое значение для хранения в "=?", Не затрагивая запрос. Например, если я ввожу «Espresso» для продукта, оставляю milkOptions и вводю «Small» для размера, могу ли я вернуть результат запроса всех Small Espressos. Я хочу эту функцию, потому что я хочу для различной степени специфичности

import sqlite3
product = input("Enter product")
milkOptions = input("Enter milkoptions")
size = input("Enter size")

conn=sqlite3.connect("system.db")
cur=conn.cursor()
test = cur.execute("""
select count(product), strftime("%m-%Y", orderDate) as month 
from customerOrders
where product = ? and milkOptions = ? and size = ? 
group by product, month""",(product, milkOptions, size)).fetchall()

+---------+---------------+--------+-------------+------------+
| orderid |    product    |  size  | milkOptions | orderDate  |
+---------+---------------+--------+-------------+------------+
|       1 | Espresso      | Small  | Soya        | 2019-10-29 |
|       2 | Cappucino     | Small  | SemiSkimmed | 2019-10-29 |
|       3 | Cappucino     | Small  | SemiSkimmed | 2019-10-29 |
|       4 | Cappucino     | Medium | SemiSkimmed | 2019-10-29 |
|       5 | Hot Chocolate | Medium | Coconut     | 2019-10-29 |
|       6 | Hot Chocolate | Medium | Coconut     | 2019-10-29 |
+---------+---------------+--------+-------------+------------+

1 Ответ

0 голосов
/ 10 ноября 2019

Если столбцы не имеют ограничения NOT NULL, их значения можно присвоить NULL.

if milkOptions == "":
    milkOptions = "NULL"

Вставить в базу данных после выполнения этого оператора. Это довольно нелегкий обходной путь, но он работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...