我有一个简单的卡片 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/