1

是否有可能使用mysql检查记录是否存在?

rowName | number
----------------
dog     | 1
cat     | 2

例如:

如果我有一个变量$var = 'dog',它已经存在于我的数据库中,我希望系统将 +1 数字添加到狗行。

另一方面,例如,当$var='fish'我的数据库中不存在 variable 时,我希望系统插入'fish'编号为 1 的新行。

我想知道是否有一个查询可以替代使用 php 条件的两个不同查询。我认为只运行一个mysql查询会更快。

4

2 回答 2

3

请参阅此INSERT ... ON DUPLICATE KEY UPDATE。例如

INSERT INTO table (rowName, `number`) VALUES ('$var', 1)
  ON DUPLICATE KEY UPDATE `number` = `number` + 1;
于 2013-06-10T12:58:37.867 回答
1

尝试这个:

// 你可以检查记录是否存在

SELECT EXISTS(SELECT rowName FROM table WHERE rowName="$var");

// 你也可以做一个查询

INSERT INTO table(`rowName`, `number`) VALUES ("$var", 1)
ON DUPLICATE KEY UPDATE `number` = `number`+ 1;
于 2013-06-10T13:05:54.363 回答