WordPress 有用的数据库SQL查询语句

发布于:
WordPress

在使用WordPress的过程中,我们少不了要对数据库进行修改操作,比如,更换域名、修改附件目录、批量修改文章内容等等。这个时候,使用SQL查询语句可以大大简化我们的工作量。

下面分享一些wordpress常用的SQL查询语句

注:1.在每次使用SQL查询语句前,请务必导出数据库备份!!

2.下面的SQL查询语句,数据库都是使用WordPress默认的 wp_ 表头,请根据自己的实际修改。

1. 删除所有未使用的标签

DELETE a,b,c
FROM wp_terms AS a
LEFT JOIN wp_term_taxonomy AS c ON a.term_id = c.term_id
LEFT JOIN wp_term_relationships AS b ON b.term_taxonomy_id = c.term_taxonomy_id
WHERE c.taxonomy = 'post_tag' AND c.count = 0

MySQL通过localhost无法连接数据库的解决

发布于:
服务器技术

问题:一台服务器的PHP程序通过localhost地址无法连接数据库,但是如果设置为127.0.0.1则可以正常连接,连接其他数据库服务器也正常。MySQL的权限设置正确,且通过mysql命令行客户端可以正常连接数据库。

分析:这是典型的socket没有正确设置的情况。

连接MySQL数据库有两种方式:TCP/IP(一般理解的端口的那种)和Unix套接字(一般叫socket或者sock)。大部分情况下,可以用localhost代表本机127.0.0.1,但是在MySQL连接时,二者不可混用,而且MySQL中权限设置中localhost与127.0.0.1也是分开设置的。当设置为127.0.0.1时,系统通过TCP/IP方式连接数据库;当设置为localhost时,系统通过socket方式连接数据库。

Orchard 删除的内容 不会在数据库中删除相关的部分记录

发布于:
Orchard CMS

From Orchard Codeplex

我注意到,当我使用如下代码删除的内容项目,它不会删除连接到该内容项的任何部分的现有数据库记录。 例如,AutoroutePartRecord和TitlePartRecord。

_contentManager.Remove(contentItem)

这可能是是移除和彻底删除的想法差异,当您通过ContentManager删除的内容项目时 ,它只是清除在所有版本的发布时间和最新的标志,但留下完整的记录,只是对任何查询透明。 它不是一个记录删除而像一个回收站,数据仍然存在的情况下删除内容是不是你的工作流程的结束。 这是和版本记录您发布版本时总体思路相同,旧版本记录既不是最新的,也不发布时间,但他们像维基,历史悠久的审计,恢复到过去,等场景实际存在。好像这个叫什么软删除。

这在大多数情况下是一个良好的方案,但应该有一个可能,需要永久地删除的内容记录,只是你不一定需要它。

所以,我们得到一个处理办法。ContentHandler中添加OnRemove事件,彻底的消灭它。

public class SchoolHandler : ContentHandler
    {
        public SchoolHandler (IRepository schoolPartRepository)
        {
            Filters.Add(StorageFilter.For(schoolPartRepository));
            OnRemoved((context, part) =>
            {
                schoolPartRepository.Delete(part.Record);
            });
        }
    }

最后引用一个帖子的内容,来说明一般情况下没有必要非得删除它。

磁盘空间时下真的很便宜,甚至在托管计划您的网站可能会工作了很长很长的时间,都难以达到你的主机的空间限制。而且那些数据一般而言,对性能的影响也微乎其微,而且也可做其他优化用空间来换取时间(性能)。如果这真成为一个问题,做清理模块可能将不得不直接在NHibernate做一些结构混乱的东西,但它应该是相当简单的。 但在一般情况下,软删除是越来越普遍,因为他们提供了许多优点。