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个用户在输入内容,因此访问量并不是很大。我无权访问数据库指标,所以不能确定。
答案 0 :(得分:0)
在WHERE子句中使用EXISTS条件。在您的情况下,第一个选择未指定表格和条件。
一个例子:
SELECT *
FROM customers
WHERE EXISTS (SELECT *
FROM order_details
WHERE customers.customer_id = order_details.customer_id);
尝试像这样放置您的语句,如果它返回重复的数据,则只需使用DISTINCT。 (SELECT DISCTINCT * .....
)
答案 1 :(得分:0)
另一种适合您的方法:
INSERT INTO your_table VALUES (SELECT * FROM table GROUP BY your_column_want_to_dupplicate);
答案 2 :(得分:0)
@Nick的回答提供了解决此问题的线索。分开EXIST
检查和INSERT
并不是最好的方法。如果一个用户获得0,则两个用户实际上可以执行INSERT
。使用INSERT ... ON DUPLICATE KEY UPDATE...
进行单个语句查询是可行的方法。