在更新数据库Mysql之前检查是否存在值

时间:2016-11-05 12:11:15

标签: php mysql

我已经编写了一个查询来向表中添加isbn ...它工作正常但是如果我尝试插入已经存在的isbn它会给我一个错误。如何检查值是否存在?

这是我的问题:

$query = "INSERT INTO cart (isbn, hardcover_purchased, softcover_purchased, ebook_purchased)
          VALUES ('0061348112', 1, 0, 0)";

2 个答案:

答案 0 :(得分:1)

您可以执行以下更新:

UPDATE Tokens
SET refresh_token = 'C08Rbs'
WHERE id = '2'
AND NOT EXISTS (SELECT refresh_token FROM Tokens WHERE refresh_token ='C08Rbs')

使用ROW_COUNT()来确定是否实际更新了任何行。假设id = 2的行实际存在,如果没有更新行,它将返回0(因为该值已经存在)。

答案 1 :(得分:1)

我建议使用ON DUPLICATE KEY UPDATE。例如:

$query = 'INSERT INTO cart (isbn, hardcover_purchased, softcover_purchased, ebook_purchased) VALUES ('0061348112', 1, 0, 0) ON DUPLICATE KEY UPDATE isbn=isbn;';