如何检查我的SQL表中是否存在数据以及是否未插入较新的数据?

时间:2010-11-28 00:46:25

标签: php mysql sql

我的桌子由3个值组成 -

  • ID

id是一个自动增量int值,其余是文本。

我的PHP脚本每半小时检索一次程序的最新版本,并将其存储在sql表中。我想要的是php脚本检查表中是否已经存在值(即没有新版本)。如果不是,我希望它插入新数据。 为了明确这一点,我没有取代“长”的价值。我只是在创造它的新价值而'id'正在记录已经有多少版本。

2 个答案:

答案 0 :(得分:4)

使用EXISTS关键字。

INSERT INTO Table (Col1, Col2, Col3)
Values(?, ?, ?)
WHERE NOT EXISTS (
SELECT Col1 FROM TABLE
WHERE Col1 = ? AND Col2 = ? AND Col3 =?)

您可以找出实际需要测试的列。

答案 1 :(得分:0)

您可以在 long 列上添加 UNIQUE 索引并使用 INSERT IGNORE

INSERT IGNORE INTO versions (long, short)
VALUES (?, ?)

如果密钥已经存在,MySQL将生成警告(不是错误),既不会插入也不会更新任何行。