有一个数组,我想插入数据库,数据库中已经有的保留,没有的添加.请问思路是什么样的?

geniuskf 2008-05-06 04:15:08
我觉得把数据库遍历 一个一个的判断插,感觉很蠢,应该有更好的办法,请问思路是怎么样的.
应该有类似的方法 写一段SQL解决才对
...全文
74 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
WWWWA 2008-05-06
  • 打赏
  • 举报
回复
在插入之前要判断,假设1为数组值,KEYFIELD为关键字
INSERT INTO biao_qian (biao_qian)
SELECT DISTINCT 1 FROM biao_qian WHERE 1<>KEYFIELD
geniuskf 2008-05-06
  • 打赏
  • 举报
回复
$biao_qian= explode(" ", $biao_qian);
foreach($biao_qian as $bq){
$cha_ru = "INSERT INTO biao_qian (biao_qian)
VALUES ('$bq')";
$mysqli->query($cha_ru);
}

这样是直接插入了数据,没有进行判断.我想请问,如何进行判断? insert 不能跟查询一样接WHERE.只能接子查询之类的.我该如何判断?

WHERE biao_qian != '$bq'
WWWWA 2008-05-06
  • 打赏
  • 举报
回复
数据量越大越明显
WWWWA 2008-05-06
  • 打赏
  • 举报
回复
MYSQL不支持直接将数组内容导入表中(VFP支持)

无论哪种方法,都要循环,只是将数组导入临时表,再与工作表连接,判断
KEY字段是否存在要快得多,相比用程序时,一个一个判断KEY字段是否存在
geniuskf 2008-05-06
  • 打赏
  • 举报
回复
PHP+MYSQL下
这个数组的内容一般不会超过10个
感觉建临时表 是不是太小题大做了点?
建临时表再操作快些
还是说PHP里来个遍历,一次解决数组里的一个值这样快些?
liuyann 2008-05-06
  • 打赏
  • 举报
回复

我觉得把数据库遍历 一个一个的判断插,感觉很蠢,应该有更好的办法,

你在什么环境下编程?
一个思路就是,设主键,然后程序中 try catch,这样比较方便
==== ====
WWWWA 2008-05-06
  • 打赏
  • 举报
回复
将数组的内容插入到临时表中,再与工作表连接,这样快一些

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧