现有两个表:attachment 、article
attachment 字段有: attachid(附件id)、aid(稿件id)、dateline(时间)
article 字段有:aid(文章id)、content(稿件内容)、dateline(时间)
情况是这样的:编辑在发稿的时候由于某些问题,稿件发布后没有更新附件中aid值,现在想修复。有什么好的办法。
表结构有问题吧,你这里修改掉,之前引用过这个附件的文章怎么办。
######回复 @意志与表象的世界 : content中含有att(附件路径)。所以我content like 《att》结果很慢,性能很差。######你的article里没有任何关于attachment的信息啊,通过什么修复呢?######回复 @意志与表象的世界 : 不是的,是已经存在的数据,我想修复。######不属于多个文章,这个attachment的记录不就是伴随着当前新发的文章产生的吗?插入文章后获得此id,然后再插入attachment的记录。两个insert######回复 @意志与表象的世界 : 现在就是可以肯定不属于多个文章。求SQL语句。######有没有人能帮一下啊。
######作个判断,其他值不变,update一下就可以
######先要查出来才能update啊######aid(稿件id) 应该是非空没有默认值, 这样没有的话就会抛异常, 就不会出现楼主的情况了.
现在是无法找到文章和附件的关系了
######content中含有att(附件路径)。######首先你得確認一點,content里的附件路徑能幫你拿到attachid
例如 路徑是 download/?id=1,那attachid =1 .這個是前提,不然我想不到你怎麼能修復了。
有這個前提的話,其實你只要把content里的內容用正則讀出所有附件路徑,建一張臨時表在住對應的aid和attachid基本就解決了。
Sql支持正則不?我是沒用過,不曉得。如果支持,你正好又會,那2,3句就sql就解決了。
######但具体怎么写好呢######嗯,是个好办法。######把 article 表中的aid 和content字段中包含附件id的内容保存到一个临时表
万一有1对N情况就麻烦咯,1篇文章有多个附件
###### @waney 去看SQL正则呗,谁都不知道CONTENT内容。要么就写代码把article读出来,通过程序帅选######是啊 这步具体怎么写啊。######要不其他语言配合sql写吧######主要是没看到两个表之间的对应关系 aid都没了 只能通过时间来匹配?######比如版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。