我有一个名为mainlinks
的表,它有大约600万行。有一个名为url
的列,其中包含来自网络的url以及另外两列metaTitle
和metaDesc
,这些列在大多数行中都是空的。比较两个mysql表的值
我有另一个表叫links1
它有大约350万行,列URL
,Utitle
和metaDesc
。 links1
中的所有网址也位于mainlinks
。 Links1
有几百万个网址,在其Utitle
和metaDesc
列中有标题和meta:描述。我现在试图通过SQL来比较这两个表,并且其中links1
有一个URL的标题和说明,以便将该信息复制到mainlinks
中的metaTitle
和metaDesc
。
我尝试下面的代码:
UPDATE mainlinks
INNER JOIN links1 ON (mainlinks.URL = links1.URL)
SET mainlinks.metaTitle = links1.UTitle, mainlinks.metaDesc = links1.metaDesc
phpMyAdmin的告诉我,几百记录被更新,虽然我知道一个事实,即它应该是几百万。例如,在URL
这两列中仅显示“https://zvelo.com”,但Utitle
和metaDesc
列中的值未被复制到mainlinks
。任何想法可能是什么问题?
TIA!
编辑:可能它可能是其中一个URL列有一些空白后的另一个没有实际的网址,他们因此被视为不同?如果是的话,我怎么能解决这个问题?
两个表上的URL是唯一的吗?是否有可能冗余URL在链接1中有两条记录,其中一条记录有列数据,另一条记录没有,所以在这种情况下,SQL只是将主更新为空......您可以添加条件说'地址links1。 Desc not null'...等等...... – bonCodigo 2013-02-26 17:48:16
@bonCodigo是的,它们是独一无二的......--( – Phil 2013-02-26 17:50:04
@Phil--根据 MySql应该有'TRIM'函数来处理前后空格 –
2013-02-26 18:12:55