解决方案:
在多个列上放置唯一约束
ALTER TABLE rating ADD UNIQUE KEY ( id , id );
我想在我的评分系统中插入一个分数。我希望能够插入数据,如果它不存在。如果确实存在,我也希望相同的查询返回true / false。
我调查了INSERT IGNORE
,但是我默默地失败了,所以我不知道如何检查。
我知道我可以尝试SELECT ... WHERE id = 1
而不是插入,但是我想把它移到一个插件上,这可能吗?
答案 0 :(得分:1)
如果对要检查的列使用唯一键约束,则如果没有数据,则正常插入将成功,或者如果已经存在匹配,则由于唯一键约束而失败。 / p>
答案 1 :(得分:0)
INSERT INTO `rating` (value1)
SELECT 'your rate for value1' FROM `rating`
WHERE NOT EXISTS (SELECT * FROM `rating`
WHERE value1='your rate for value1' ) LIMIT 1;