我的环境是PHP+MYSQL。现在我向表里批量插入数据。INSERT INTO articles (title,article,date,image)SELECT "'.$title.'","'.$article.'","'.$date.'","'.$image.'"如何做到以下这种效果。如有以下这些数据,title1,article1,date1,image1
title2,article2,date2,image2
title3,article3,date3,image2
title4,article4,date4,image2
title5,article5,date5,image3 插入数据库: title1,article1,date1,image1
title2,article2,date2,image2
title3,article3,date3, //这里的image2, 数据库里已经有了,此时插入空值。
title4,article4,date4,
title5,article5,date5,image3 谢谢
title2,article2,date2,image2
title3,article3,date3,image2
title4,article4,date4,image2
title5,article5,date5,image3 插入数据库: title1,article1,date1,image1
title2,article2,date2,image2
title3,article3,date3, //这里的image2, 数据库里已经有了,此时插入空值。
title4,article4,date4,
title5,article5,date5,image3 谢谢
INSERT INTO articles (title,article,date,image)SELECT "'.$title.'","'.$article.'","'.$date.'","'.$image.'"这样的话,你可以在PHP中先检查一下$image是否已经存在,如果存在则置空即可。
我只会下面的代码,要么$image已存在,整条信息都不插入。
FROM dual WHERE not exists (SELECT image FROM articles WHERE articles.image = '".$image."') 而我现在想要,如果$image已存在,"'.$title.'","'.$article.'","'.$date.'"还是继续插入数据库,而$image项忽略,插入一个空值。
谢谢。
在你的PHP代码中先执行 select * from xxx where .image = '".$image."
如果有记录返回则
INSERT INTO articles (title,article,date)SELECT "'.$title.'","'.$article.'","'.$date.'"
没有记录返回则按你原来的语句。
while ($row = mysql_fetch_array($query1)) {
$image1 = $row['image'];
}
if(!empty($image1){
//INSERT INTO原句
}else{
//INSERT INTO $image = '';
}老大,是不是这样的代码可以呢?
$row = mysql_fetch_array($query1)if(isset($row['count']) && $row['count'] > 0) { // 如果只是image为空
INSERT INTO articles (title,article,date,image)SELECT "'.$title.'","'.$article.'","'.$date.'","" // 如果是整条数据都不要,就什么都不干好了} else {
//INSERT INTO原句
}如果你想优化的话,完全可以把是否有图片信息放到数组中,先到数组中看,数组没有image的项时,在去查库