SELECT EXISTS
(SELECT * FROM table WHERE deleted_at IS NULL and the_date = '$the_date' AND company_name = '$company_name' AND purchase_country = '$p_country' AND lot = '$lot_no') AS numofrecords")
这个mysql查询有什么问题?它仍然允许重复插入(1000条记录中有1条)。大约有100个用户输入,所以我想流量并没有那么大。我没有访问数据库的权限,所以我不能确定。
3条答案
按热度按时间njthzxwz1#
另一种方法:
ajsxfq5m2#
exists条件用于where子句。在您的例子中,第一个select没有指定表和条件。
举个例子:
试着这样写语句,如果它返回重复的数据,只需使用distinct(
SELECT DISCTINCT * .....
)envsm3lx3#
来自@nick的答案提供了解决问题的线索。分开的
EXIST
检查并INSERT
不是最好的办法。实际上有两个用户INSERT
,如果一个得到0。使用INSERT ... ON DUPLICATE KEY UPDATE...
是一条路要走。