数据库:MySQL实战;左链接;查询WordPress数据库中的文章内容

在1年前,我用学生价租了一个阿里云服务器(是真的便宜啊),自己在CentOS系统上用命令行搭了个WordPress的环境,开始了为期一个月使用自建博客的历程。
事实证明,博客在类似博客园这样的平台上写还是非常方便的!

  • 不用自己优化后台,虽然WordPress已经足够傻瓜了,但是我还是太菜了
  • 只有小贵的价格才能租到一个网速不慢+大小够用的服务器
    之前考研没有工作没有收入,于是就狠下心不要了。重新捡起了长草很久的博客园。

今天,下了决心把以前的数据导出来,就有了以下的内容


1、把wordpress.sql文件导入mysql数据库

打开Mac的终端,进入MySQL操作界面:

mysql -u root -p

输入密码

(1)创建一个空的数据库

create database <name>;

(2)查看是否创建成功(注意这里的databases加了s)

show databases;


(3)进入wordpress数据库进行接下来的操作

use wordpress;


(4)设置数据库编码

set names utf8;

(5)导入数据(注意sql文件的路径)

source /Users/wordpress.sql;

2、分析WordPress数据库的表结构

(1)显示WordPress数据库

show tables;


(2)具体每个表里边存着什么信息呢?

Tables_in_wordpress -
wp_commentmeta 评论的数据
wp_comments 评论的数据
wp_links 友情链接的数据
wp_mgmlp_folders 未知
wp_options WordPress系统选项、插件、主题
wp_postmeta 文章的数据
wp_posts 文章内容
wp_term_relationships 文章和目录对应关系
wp_term_taxonomy 未知
wp_termmeta 未知
wp_terms 目录和标签
wp_usermeta 用户的数据
wp_users 用户的数据

(3)这次我主要使用的表和数据如下:
wp_posts:ID、post_date(文章发布时间)、post_title(文章题目)、post_status(文章状态)、post_content(文章内容)
wp_term_relationships:object_id(对应文章ID)、term_taxonomy_id(对应term_id)
wp_terms:term_id、name(目录名称)
(4)在列出了文章的一些简要信息是,我发现有非常多的重复文章
原来wordpress发布文章时会自动保存一些草稿、修订版本等无用的文章数据。
经过查看,发现很多的文章状态(post_status)都是inherit,这些文章状态都具体是什么意思呢?
publish:已发布
inherit:修订版
draft:草稿
auto-draft:自动保存的草稿
(以上4中就是出现在我的数据库中的状态)此外还有:
pending:待审、trash:回收站、future:定时、private:私有

  • 由于我的强迫症,我决定删掉所有状态是inherit的文章(字段需要有单引号哦)
delete from wp_posts where post_status='inherit';

2、终于要开始多表查询了

(1)先查出我需要转移的所有的文章
(因为是在终端中查看,所以如果直接打印文章内容,是非常难以看懂的,我尝试了一次,手动苦笑)
思路:查询文章ID、发布时间、题目、状态以及文章所属的目录
文章所属的目录是先使用文章ID去wp_term_relationships表查询对应目录的id,然后根据term_id去wp_terms表中查询目录实际的名称

select p.ID,p.post_date,p.post_title,p.post_status,t.name
from wp_posts as p
left join wp_term_relationships as tr on p.ID=tr.object_id
left join wp_terms as t on t.term_id=tr.term_taxonomy_id;


(2)最后一步根据文章ID去查看文章内容post_content

select post_content from wp_posts where ID=1;


然而可以从图片中看到,WordPress数据库中的文章内容存储的是html格式,并且有的图片用的是链接。
由于我之前的文章数量很少,并且没有什么图片,用以上方法还是可以的。
如果文章数目大,图片链接多,就必须要借助已经写好的工具了。
祝周末愉快!

原文地址:https://www.cnblogs.com/ZhengWH/p/10579160.html

时间: 2024-11-10 15:35:11

数据库:MySQL实战;左链接;查询WordPress数据库中的文章内容的相关文章

恢复云数据库MySQL的备份文件到自建数据库

前提条件: 本地MySQL数据库安装在64位的Linux系统中,且与云数据库MySQL版的版本相同. 操作系统中已安装数据恢复工具Percona XtraBackup 2.2.9或以上版本 请从Percona XtraBackup官网下载:https://www.percona.com/downloads/XtraBackup/LATEST/ percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm 是rpm包安装快速 # yum localinstall per

查询博客中相同文章类别总共有多少文章

查询博客中相同文章类别总共有多少文章 T_Content 博客表 T_ContentType 博客类别表 string sql = "select  (select  count(*) from T_Content where FTypeId=T.FID) as num from T_ContentType AS T" 查询博客中相同文章类别总共有多少文章

【mysql】存储过程,查询指定数据库、具体编码类型含有某字符串的所有表名和列名

1.需求:就是想在一个数据库中查找存在某字符串的表和列: 2.例子,我这里my_test数据库有3张表,test_replace的name.password列有张三字符串,t1表的name.city列也有张三字符串,t_user表就没有张三字符串. 运行结果 t1,name;t1,city;test_replace,name;test_replace,password 符合要求 3.代码 -- 1.将mysql分隔符从;设置为& DELIMITER & -- 2.如果存在存储过程getCo

数据库MySQL的语句规范和操作数据库的各命令行

MySQL语句的规范 1.关键字与函数名称全部大写 2.数据库名称.表名称.字段名称全部小写 3.SQL语句必须以分号结尾 在cmd中用命令行操作数据库 首先打开MySQL -u代表账号 -p代表密码 --prompt \h是指将提示符改成localhost 将提示符改成更详细的信息 创建一个数据库,查看版本和查看目前有的数据库表 创建一个名为t2的数据库,并设置编码格式为gbk,如果以后想修改该数据库的编码,不需要删除重新建,只需要修改编码格式即可,下图也有展示 删除t1数据库,并查看现有的数

关系型数据库--mysql 5.5.20 32位 数据库的安装

第二项是utf 编码格式 第三项可以自己选择GBK Enable root access from remote machins 选中是可以远程访问mysql服务端 安装结束.

spring data jpa 自定义sql 左链接查询

@Query(value = "select u.* from appuser_te u LEFT JOIN app_user_history his on his.user_id=u.id where his.apple_app_id=:appleAppId limit 1,3",nativeQuery = true) List<AppUser> findByFlushId(@Param(value="appleAppId") Integer appl

左链接查询

SELECT * FROM (SELECT * FROM T_Life_Message z WHERE z.message_id NOT IN(SELECT u.message_id FROM T_Life_UMessage u WHERE u.account='18922234293' AND u.isdelete=1) AND message_status=1) AS M LEFT JOIN (SELECT u.message_id,u.isread FROM T_Life_UMessage

SqlSever基础 count 查询一列中具有指定内容的行数是多少

镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ 1 table 2 code 1 --创建一个数据库 2 create database helloworld1 3 4 use master 5 drop database helloworld1 6 7 --用helloworld1这个数据库 8 use helloworld1 9 10 --

数据库 : Mysql 1 - 日常应用

#登录MYSQL数据库 MYSQL -u root -p #显示所有数据库 SHOW databases; #显示当前数据库与应用程序间进行了多少条连接 SHOW processlist; #使用某一数据库 USE database; #显示所有表 SHOW tables; #表结构描述 describe DESC table; #筛选表数据 #选择哪些列 SELECT prod_name, prod_price #从哪个表选 FROM products #选择的列做出什么筛选匹配 WHERE