我有一个表,其中包含来自网站CMS创作环境的71,593页的大型列表(以及有关该页面的其他列),而另一个表则包含已发布服务器上47,537个页面路径的列表。如果特定的页面也存在于第二个表中,因为所有已发布的页面都应位于两个表中,因此我试图使用一个查询来更新第一个表中的布尔值列“ Published”。但是,我的更新脚本一直说0行受影响,并且我没有收到任何mysql错误。
我通常在PHP中执行查询,但是我也在phpMyAdmin中尝试过。我从来都不擅长使用INNER JOIN,并且在大约10年的时间里还没有真正从事过SQL或PHP的工作,所以请考虑我是一个极端的新手。
每个表都有一个名为Path的列,并且Raw_Pages_Pub中的所有行在Raw_Pages中都应具有匹配的值(99.9%的确如此)。
我最近的尝试是:
UPDATE Raw_Pages INNER JOIN Raw_Pages_Pub USING (Path) SET Raw_Pages.Published = 1
我也尝试过
UPDATE Raw_Pages INNER JOIN Raw_Pages_Pub ON Raw_Pages.Path = Raw_Pages_Pub.Path SET Raw_Pages.Published = 1
我希望我的大多数记录现在在“发布”列中都为1,但是没有记录。
谢谢!
Raw_Pages具有以下结构:
+-------------------------+--------------+------+-----+---------+--------------- -+
| Field | Type | Null | Key | Default | Extra |
+-------------------------+--------------+------+-----+---------+--------------- -+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| Path | varchar(500) | NO | MUL | NULL | |
| Name | varchar(255) | NO | | NULL | |
| Date_Created | datetime | YES | | NULL | |
| Created_By | varchar(255) | YES | | NULL | |
| Tags | text | YES | | NULL | |
| Topic_Tags | text | YES | | NULL | |
| Publishing_Entity_Tags | text | YES | | NULL | |
| Premium_Tags | text | YES | | NULL | |
| Content_Type_Tags | text | YES | | NULL | |
| Content_Directory_Tags | text | YES | | NULL | |
| Robots_Tags | text | YES | | NULL | |
| Other_Tags | text | YES | | NULL | |
| Description | text | YES | | NULL | |
| Last_Modified | datetime | YES | | NULL | |
| Last_Modified_By | varchar(255) | YES | | NULL | |
| Title | text | YES | | NULL | |
| Published_Date | date | YES | | NULL | |
| Template | varchar(255) | YES | | NULL | |
| Color_Theme | varchar(255) | YES | | NULL | |
| Redirect_Target | varchar(255) | YES | | NULL | |
| Last_Replication_Action | varchar(255) | NO | | NULL | |
| Last_Replicated | datetime | YES | | NULL | |
| Published | tinyint(1) | NO | | NULL | |
+-------------------------+--------------+------+-----+---------+--------------- -+
Raw_Pages_Pub具有简单得多的结构:
+-------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| Path | varchar(500) | NO | MUL | NULL | |
+-------+--------------+------+-----+---------+----------------+
答案 0 :(得分:0)
由于LOAD INFILE导入错误,表Raw_Pages_Pub在值的末尾有换行符。删除后,INNER JOIN可以正常工作。