Python中MySQL查询完成后获取变量值并执行IF语句的方法
在Python中查询MySQL所有记录后用IF语句处理
我完全懂你的需求——你不想在SQL里用WHERE子句过滤掉name不是"john"的记录,而是要把所有数据都查出来,然后在Python代码里通过IF逻辑来处理不同的记录对吧?这很常见,我给你写个实用的示例:
首先,确保你已经安装了MySQL的Python驱动,比如用pymysql的话,先执行:
pip install pymysql
接下来是完整的代码示例,我会用字典游标让数据访问更直观:
import pymysql # 建立数据库连接(替换成你的实际配置) db_config = { 'host': 'localhost', 'user': 'your_username', 'password': 'your_password', 'database': 'your_database' } conn = pymysql.connect(**db_config) cursor = conn.cursor(pymysql.cursors.DictCursor) # 每条记录会变成字典,方便按字段名取值 # 查询所有记录,不用WHERE过滤 cursor.execute("SELECT * FROM your_table") all_records = cursor.fetchall() # 遍历所有记录,用IF做自定义逻辑处理 for record in all_records: # 判断name字段是否为"john" if record['name'] == 'john': # 这里写针对john记录的操作,比如打印、存入特定列表、更新数据等 print(f"✅ 找到John的记录:ID={record['id']},邮箱={record['email']}") else: # 非john的记录也可以做对应的处理,比如统计、标记或其他业务操作 print(f"🔍 非John的记录:姓名={record['name']},备注={record.get('remark', '无')}") # 别忘了关闭连接 cursor.close() conn.close()
如果你习惯用mysql-connector-python驱动,也可以参考这个版本:
import mysql.connector from mysql.connector import Error try: conn = mysql.connector.connect( host='localhost', user='your_username', password='your_password', database='your_database' ) if conn.is_connected(): cursor = conn.cursor(dictionary=True) cursor.execute("SELECT * FROM your_table") records = cursor.fetchall() for record in records: if record['name'] == 'john': print(f"处理John的记录:{record}") else: # 这里可以根据需求做任何操作,比如收集非John的记录 print(f"处理其他用户记录:{record['name']}") except Error as e: print(f"数据库连接出错:{str(e)}") finally: if conn.is_connected(): cursor.close() conn.close()
这种方式的好处是你保留了所有原始数据的完整性,能在Python层面对不同记录做灵活的逻辑处理——不管是统计、修改、分类存储还是其他业务需求,都比在SQL里提前过滤要灵活得多。
内容的提问来源于stack exchange,提问作者Marz_89
相关产品推荐
相关产品推荐

