sql - 当某些列 = 0 时动态删除记录;数据清理

标签 sql mysql triggers

我有一个简单的卡片 table :

CREATE TABLE `users_individual_cards` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` char(36) NOT NULL,
  `individual_card_id` int(11) NOT NULL,
  `own` int(10) unsigned NOT NULL,
  `want` int(10) unsigned NOT NULL,
  `trade` int(10) unsigned NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `user_id` (`user_id`,`individual_card_id`),
  KEY `user_id_2` (`user_id`),
  KEY `individual_card_id` (`individual_card_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

我有 ajax 来添加和删除基于 OWN、WANT 和 TRADE 的记录。但是,如果用户删除所有“拥有”、“想要”和“交易”卡,它们会变为零,但会在数据库中保留记录。我宁愿删除该记录。每次“更新”后检查是否所有列 = 0 是执行此操作的唯一方法吗?或者我可以设置一个条件触发器,例如:

//psuedo sql
AFTER update IF (OWN = 0, WANT = 0, TRADE = 0) DELETE

执行此操作的最佳方法是什么?你能帮忙解决一下语法吗?

最佳答案

为什么不直接从 PHP(或其他前端)触发两个查询?

update `users_individual_cards` ...
delete `users_individual_cards` where ... (same condition) and own + want + trade = 0

关于sql - 当某些列 = 0 时动态删除记录;数据清理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4687463/

相关文章:

php - mysql 插入时触发

sql-server - 如何在 T-SQL/SQL Server 中模拟超/子类型(继承)实体的 BEFORE INSERT 触发器?

sql - 每月生日 SQL 查询

mysql - SQL 更新和替换子字符串

mysql - 如何以 UTC 和本地时区存储日期时间

mysql - 按 ID 合并 MySQL 列,然后将其放入另一个表

mysql - 在MySQL中创建触发器并更新

mysql - SQL 中的多个 IF 语句

sql - 条件 SQLite 检查约束?

mysql - 如何在 MySQL 中存储二进制数据?