2011-02-18 67 views
0

我想看看表T1中是否有指定的值。如果值存在,我想输入表中的值T2MYSQL/php基本问题

我该怎么做PHP

我要检查是否存在然后通过以下命令

我想在这种格式

if (table1.id = Exist's) 

then 

{insert into table2 (values) } 

什么是写这个代码用PHP正确的方式插入值是多少?

+1

你想记录做的,如果它已经存在,做什么?你想更新它还是忽略它或其他? – 2011-02-18 09:33:29

+0

你在检查哪个值?你的代码中的``link`表,T1`或`T2`在你的问题中? `T1`对你正在检查的列有唯一的约束吗? – 2011-02-18 09:38:49

回答

3

嗯,这可能会帮助你。

修订ANSWER

那么,对于表TB1

+-------+-------------+------+-----+---------+-------+ 
| Field | Type  | Null | Key | Default | Extra | 
+-------+-------------+------+-----+---------+-------+ 
| fld1 | varchar(20) | YES |  | NULL |  | 
| fld2 | varchar(20) | YES |  | NULL |  | 
| fld3 | varchar(20) | YES |  | NULL |  | 
+-------+-------------+------+-----+---------+-------+ 

和表TB2

+-------+-------------+------+-----+---------+-------+ 
| Field | Type  | Null | Key | Default | Extra | 
+-------+-------------+------+-----+---------+-------+ 
| fld1 | varchar(20) | YES |  | NULL |  | 
| fld2 | varchar(20) | YES |  | NULL |  | 
| fld3 | varchar(20) | YES |  | NULL |  | 
+-------+-------------+------+-----+---------+-------+ 

INSERT INTO tb1 (fld1, fld2, fld3) SELECT tb2.fld1, tb2.fld2, 
    tb2.fld3 FROM tb2; 

Works的version 5.1.49的答案会是

$sql = "INSERT INTO table1 (fld1, fld2, fld3) SELECT table2.fld1, ". 
    table2.fld2, table2.fld3 FROM table2 WHERE table2.id= ".$somevalue; 

UPDATE不需要检查ID,它会自动检查,如果没有ID的话,你也会追加空

INSERT INTO table2 (fld1, fld2, fld3) SELECT table1.fld1, table1.fld2, table1.fld3 
FROM table1 where table1.id = someid ;