如果不存在查询,则在mysql上返回id

时间:2014-04-06 13:44:38

标签: mysql sql

我有一张桌子:

CREATE TABLE `table_listnames` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`address` varchar(255) NOT NULL,
`tele` varchar(255) NOT NULL,
PRIMARY KEY  (`id`)
 ) ENGINE=InnoDB;

和查询:

INSERT INTO table_listnames (name, address, tele)
SELECT * FROM (SELECT 'Rupert', 'Somewhere', '022') AS tmp
WHERE NOT EXISTS (
SELECT name FROM table_listnames WHERE name = 'Rupert'
) LIMIT 1;

我希望查询打印出已插入或已选择的记录的ID。有任何想法吗?谢谢!

2 个答案:

答案 0 :(得分:1)

您可以使用LAST_INSERTED_ID获取最后插入的自动增量值,请参阅http://dev.mysql.com/doc/refman/5.5/en/information-functions.html#function_last-insert-id

首先检查受影响的行数是个好主意。您可以成功执行没有匹配行的查询。

答案 1 :(得分:0)

好吧,基本上是为了获取插入记录的id:

SELECT id FROM table_listnames WHERE name = ''

之后运行另一个查询

基本上,您的代码在插入时会在变量中包含记录,因此请使用$ name变量来选择ID,并使用$result = mysql_query($query);将结果存储在$ result变量中。

要获取所选记录的ID,基本上是:

SELECT id FROM table_listnames WHERE something = 'something'

所以,让我们说,您的PHP代码选择名称字段,并使用$ name变量存储要匹配的数据,您只需添加SELECT id,就可以将结果存储到变量,例如$result = mysql_query($query); $ query包含您正在运行的SQL。

我希望这是你的期望。虽然我使用mysql_ *函数来解释你,但请不要使用mysql_ *函数。