mysql-如果table2中不存在,如何插入表1中?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql-如果table2中不存在,如何插入表1中?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1337字,纯文字阅读大概需要2分钟。
内容图文
![mysql-如果table2中不存在,如何插入表1中?](/upload/InfoBanner/zyjiaocheng/881/fda210d5aa324fcf8deea4c1bca48ca4.jpg)
我是mysql新手.如果在table2中不存在记录,我在将记录插入到table1中时遇到问题.我有2个表table1和table2,格式为:
table1
dep_id start stop modified deleted
1 23456789 167921525 Yes No
2 34567812 345678145 Yes No
3 32789054 327890546 No No
table2
start stop modified deleted
23456789 167921525 No No
34567823 345678145 No No
32789053 727890546 No No
我试图仅在table2的“开始”和“停止”列中不存在值时才将值插入到table1的开始和停止字段值中.如果存在,我需要抛出一个错误.
这些表没有主键外键关系.
很抱歉,我不知道正确的语法,但是我必须在mysql和PHP中执行类似的操作.
Replace Into into table1 set 'start'=> $start,'stop' => $stop
(select 'start','stop' from table2 where table1.start and table1.stop not in table2.start and table2.stop);
在插入到table1之前,如何查询这两个表以检查Table1.start和Table1.stop字段是否与Table2.start和Table2.stop不匹配?
解决方法:
你可以做:
INSERT INTO table1 (start, stop)
SELECT a.*
FROM (SELECT 123456789 start, 234567890 stop) a
LEFT JOIN table2 b ON (a.start,a.stop) IN ((b.start,b.stop))
WHERE b.start IS NULL
其中123456789和234567890分别是您的开始和停止输入值.
然后,您可以根据所使用的数据库接口(PDO,mysqli等),使用rowCount或num_rows_affected进行检查.如果为0,则不插入任何记录,否则,发生插入.
内容总结
以上是互联网集市为您收集整理的mysql-如果table2中不存在,如何插入表1中?全部内容,希望文章能够帮你解决mysql-如果table2中不存在,如何插入表1中?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。