insert into product_species(type_id,type_name)SELECT $typeid,$typename FROM product_species where NOT EXISTS(SELECT * FROM product_species where product_species.type_id=$typeid LIMIT 1)现在问题是,当我product_species表中没有数据时,不能插入数据。当我有数据时就能正常插入。
呵呵...我刚学PHP,我以前玩开VB,sql,ASP,access 请那位大侠帮帮我,谢谢!
呵呵...我刚学PHP,我以前玩开VB,sql,ASP,access 请那位大侠帮帮我,谢谢!
表空的时候 有这种情况
VALUES (101,102) ON DUPLICATE KEY UPDATE type_id=type_id+1;
UPDATE product_species SET type_id=type_id+1 WHERE type_id=101
我试了还是不行。能插入数据,但不会判断TYPE_id或TYPE_NAME是否已存在
我想插入数据时选判断TYPE_id或TYPE_NAME是否已存在。
这个表有主键或者type_id是unique索引才能用on duplicate key
---------------------------------------------------------
puid int(6) 否 auto_increment
type_id int(6) 是 NULL
type_name varchar(50) gbk_chinese_ci 是 NULL
---------------------------------------------------------
以上是我product_species表的结构。
我试了以下语句也不行。
if ($_POST['action']=="add")
{
$typeid=$_POST['typeid'];
$typename=$_POST['typename']; /*if(mysql_query("select type_id,type_name from product_species where (type_id='$typeid') or (type_name='$typename')") or die("操作失败!"))
{
echo"<script>alert('您添加的标识或类别名已经存在,请换一个再试试!');history.go(-1)</script>";
}
else
{*/
if(mysql_query("insert into product_species(type_id,type_name)values('$typeid','$typename')"))
{
echo "<script>alert('类别添加成功!');window.location='admin_product_species.php'</script>";
}
else
{
echo "<script>alert('类别添加失败!');history.go(-1)</script>" ;
}
// }
}
我刚调试,这句有问题。请大侠再帮改改....
嘿嘿,为空的时候不行,只要把空表变成不空就行了 :)改了一下,用的我的表名/字段,你自己改回去即可
insert into k(title,weizhi)
SELECT 'eee','222'
FROM ( select title,weizhi from k union select '---','000' ) x
where NOT EXISTS( SELECT * FROM k where title='eee' )
limit 1
;
我把limit放在了外面,因为放在里面会重复插入,应该不是你需要的,
这里的 '---','000' 只要和你要插入的'eee','222'不同即可