检查记录是否存在并返回其ID(如果找到或创建)?

时间:2013-01-27 20:53:31

标签: php mysql insert ezsql

  

可能重复:
  Normalized DB insertions

是否可以执行单个查询以查找记录并返回其ID或插入并返回其ID?以下是我的想法可能对此有用:

INSERT INTO firstname (id, name) VALUES (NULL,'$name') 
ON DUPLICATE KEY UPDATE name ='$name', id=LAST_INSERT_ID(id)

如果有帮助,我正在使用ezSQL,只需要$db->query("...");然后$id = $db->insert_id;来获取插入ID并在变量中使用它。

2 个答案:

答案 0 :(得分:2)

您可以编写自己的存储过程来检查现有记录。

  1. 尝试按ID
  2. 检索记录
  3. 检查它是否为空,插入
  4. 否则你得到了行

答案 1 :(得分:0)

我不确定我是否理解你需要什么。

调用INSERT INTO ... ON DUPLICATE KEY UPDATE ...你只需要从数据库中获取last_insert_id(),这应该是全部。