我正在寻找一种方法,使某种功能进入PHP和MySQL谁给我作为一个简单的表中的记录的ID。非常快速的PHP-MySQL交互
我得到了一个id - >值表,其中id是一个自动增量字段。
自然的方式或简单的方法,我知道的是:
$myId = Check('Cheese');
function Check($value) {
$sql = "SELECT id FROM table WHERE value = '$value'");
$res = mysql_query($sql);
if ($res)
return mysql_result($res,0);
// If the record doesn't exist then continue to insert the record
$sql = "INSERT INTO table (value) values ('$value')";
$res = mysql_query($sql);
return mysql_insert_id();
}
好吧,我想这是经典的方式..但我认为必须有一个MySQL命令或谁使事情变得更简单一些。
我知道有一个插入IGNORE,但有没有办法让选择只有当不存在,并返回ID?
我想要做的事,如:
选择ID从表 其中value = '假' 如果不存在,则 INSERT INTO表(值)值( '假')
所以我将获得的ID在一个步骤和MySQL将解决这一问题和代码的效率会更高或快速..
(想象一下,我有使这10000次)
此功能也存在于http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html中,它需要'value'列上的唯一键。 – ceteras 2010-07-19 06:43:30
好吧,对我来说感谢这是真的,我需要定义字符串上的唯一索引,但它的工作原理 – diego2k 2011-06-19 23:13:47