python - 使用 IF 函数来区分应该使用哪个 sqlite 查询?
问题描述
我有以下(更新的)代码:
from tkinter import ttk
import sqlite3
from tkinter.ttk import *
import math
Quantity = StringVar()
def calc(filter):
qty = Quantity.get()
with sqlite3.connect('Test.sql3') as conn:
cursor = conn.cursor()
conn.create_function("CEIL", 1, lambda v: int(math.ceil(v)))
cursor.execute('SELECT CEIL(Upper*?),'
'CEIL(Stiffener*?),'
'CEIL(Insole*?),CEIL(Sock*?),'
'CEIL(Laces*?),'
'CEIL(Foil*?),'
'CEIL(PBA887*?),'
'CEIL(Soles*?),'
'CEIL(Eyelets*?),'
'CEIL(IA80*?),'
'CEIL(GussetElastic*?),'
'CEIL(Cartons*?) '
'FROM Costing WHERE Type=?',
(qty, qty, qty, qty, qty, qty, qty, qty, qty, qty, qty, qty, filter,))
results = cursor.fetchall()
item_0_in_result0 = [_[0] for _ in results]
result0.config(text=item_0_in_result0)
cursor.close()
conn.commit()
# Result labels
Label(root, text="Upper Material:", width=20, background="lightgreen", font=("Arial, bold", 11)).place(x=80, y=160)
result0 = Label(root, width=40, background="lightgreen", font=("Arial, bold", 11))
result0.place(x=250, y=160)
line 34, in calc
(qty, qty, qty, qty, qty, qty, qty, qty, qty, qty, qty, qty, filter,))
sqlite3.OperationalError: near ")": syntax error
CEIL(Sock*?)
是否应该像上面的代码一样应用声明的更改:
代码已相应调整以适用于当前的评论和描述。
我知道不建议发布整个代码,因此我缩短了可能在多行中重复的部分以适应查询。请记住,我仍然是新手,tkinter
并且只是将代码作为一种爱好。
谢谢你的理解
解决方案
如果要根据条件运行查询,请为查询提供条件。
例子:
email = request.form['email']
role = request.form['role']
# Create Cursor
cur = mysql.connection.cursor()
if role == 'admin':
# Get user by email
result = cur.execute("SELECT * FROM admins WHERE email = %s", [email])
else:
# Get user by email
result = cur.execute("SELECT * FROM users WHERE email = %s", [email])
推荐阅读
- python - 生成 XML 输出的 Transformer 模型
- javascript - HTML 输入元素上的“必需”属性需要什么才能起作用?
- scrapy - 只显示蜘蛛的日志输出?
- spring-boot - 使用 Spring 数据 JPA 中的临时列进行排序
- python - 如何将 Pytorch (+ cuda) 与 A100 GPU 一起使用?
- python - 使用 reticulate 将一段简单的 python 代码翻译成 R
- list - 加入字典列表
- ubuntu - 使用通配符 '%' 无法查看来自任何主机的用户授权
- sql - 从表中删除时变异表触发错误
- python-3.x - PythonSelenium 3.x 隐式和显式等待不处理前 2 个文本字段元素,部分适用于第三个文本字段元素