SQLite新手求助:如何用WHERE子句基于双条件删除数据行
多条件删除SQLite数据行的方法
嘿,刚接触SQLite的话,从单条件删除转到多条件其实超简单,核心就是在WHERE子句里用AND把两个约束条件串联起来就行!
基础SQL语法
假设你的数据表名叫your_table(记得替换成你实际的表名),要匹配trick_id和opn_id两个参数,对应的DELETE语句是这样的:
DELETE FROM your_table WHERE trick_id = ? AND opn_id = ?;
这里的?是SQLite的参数占位符,用来安全传入你的参数值——千万不要直接把参数拼进SQL字符串里,不然会有SQL注入风险,还容易因为特殊字符出问题。
实际代码示例(以Python为例)
如果你用Python的sqlite3库操作,代码大概是这样的:
import sqlite3 def delete_by_two_ids(trick_id_val, opn_id_val): conn = sqlite3.connect('your_database.db') cursor = conn.cursor() # 执行带参数的删除语句 cursor.execute(""" DELETE FROM your_table WHERE trick_id = ? AND opn_id = ?; """, (trick_id_val, opn_id_val)) conn.commit() conn.close() print(f"成功删除了 {cursor.rowcount} 行数据")
把两个参数放进元组传给execute()方法,SQLite会自动处理参数绑定,既安全又省心。
几个关键提醒
- 确认
trick_id和opn_id的字段类型和你传入的参数类型匹配(比如字段是整数,就别传字符串进去) - 如果需要匹配任意一个条件(而非同时满足),就把
AND换成OR,不过你这里要同时匹配两个,用AND就对了 - 执行完DELETE后一定要调用
commit()提交事务,不然修改不会生效
内容的提问来源于stack exchange,提问作者insearchofcode
相关产品推荐
相关产品推荐

