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


check if a value exists before updating database Mysql

我写了一个查询添加isbn到表…它工作得很好,但如果我试图插入一个已经存在的isbn,它会给我一个错误。如何检查一个值是否存在?

这是我的查询:

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

您可以这样执行更新:

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(因为该值已经存在)。

我建议使用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;';
相关文章: