在SQL查询中重复列标题?

时间:2012-03-19 21:26:04

标签: mysql phpmyadmin

我需要根据自定义元数据导出一些帖子。我无法导出帖子的ID,因为当我将数据导入另一个数据库时,我会遇到重复的密钥问题。

当我运行SQL查询以选择哪些字段时,我将其排除ID:

SELECT 'post_author', 
       'post_date', 
       'post_content', 
       'post_title', 
       'post_excerpt', 
       'post_status', 
       'comment_status', 
       'ping_status', 
       'post_password', 
       'post_name', 
       'post_modified', 
       'post_content_filtered', 
       'post_parent', 
       'guid', 
       'post_type', 
       'post_mime_type', 
       'comment_count' 
FROM   wp_posts 
       INNER JOIN wp_postmeta 
         ON wp_postmeta.post_ID = wp_posts.ID 
WHERE  ( wp_postmeta.meta_key = 'InternalOnly' 
         AND wp_postmeta.meta_value IS NOT NULL ); 

我将列标题作为列中的每个条目:http://screencast.com/t/A8ySD6frl6Z

所以基本上我需要在运行查询时引用帖子的ID,但是我不能在输出中包含ID。我做错了吗?

3 个答案:

答案 0 :(得分:4)

您正在选择字符串文字,而不是字段。取出单引号,你应该很好(假设查询是正确的)

SELECT post_author, post_date, post_content, post_title, post_excerpt, post_status, comment_status, ping_status, post_password, post_name, post_modified, post_content_filtered, post_parent, guid, post_type, post_mime_type, comment_count FROM wp_posts INNER JOIN wp_postmeta ON wp_postmeta.post_ID = wp_posts.ID WHERE ( wp_postmeta.meta_key = 'InternalOnly' AND wp_postmeta.meta_value IS NOT NULL );

答案 1 :(得分:2)

您需要删除引号:SELECT post_author, ...

答案 2 :(得分:1)

问题在于您引用了每个列名称。在这种情况下,您要求它做的是选择文字字符串“post_author”,“post_date”等,而不是要求它从这些列中选择数据。将其更正为“SELECT post_author,post_date ...”