Como borrar el spam de WordPress de forma masiva

En ocasiones cuando tenemos un blog de WordPress sin actualizar o revisar durante mucho tiempo, nos podemos encontrar con muchísimos comentarios spam. Si tenemos el pluggin de akismet, esto no debería de ser mucho problema porque seguramente haya filtrado el 99.9% de esos comentarios.

El problema es cuando vamos a eliminar estos comentarios spam para que no afecte al rendimiento de nuestra base de datos. Si no son muchos dentro de la zona de comentarios de WordPress, podremos pinchar en spam y luego en el botón de vaciar spam. En caso de que tengamos muchísimos comentarios falsos, este proceso no terminará y no limpiaremos la base de datos, por lo que yo recomiendo que se haga a través de una consulta SQL.

Abrimos nuestra base de datos y ejecutamos el siguiente comando. DELETE FROM wp_comments WHERE comment_approved  =’spam’;  y en cuestión de segundos ya habremos acabado de forma masiva con los comentarios almacenados en spam.

Como comentario final, antes de ejecutar cualquier sentencia en la Base de Datos, es recomendable realizar una copia de seguridad. También notaremos que si en la instalación que hicimos de WordPress, cambiamos el sufijo de las tablas, la tabla de la consulta SQL será diferente a la del ejemplo “wp_comments”.

Uso y diferencias con TRUNCATE y DELETE en SQL Server

Parar borrar el contenido de una tabla podemos utilizar las sentencias TRUNCATE Table o DELETE. Una de las principales diferencias entre estas dos sentencias es que TRUNCATE es más rápida y deja un log más limpio por lo que si tenemos que borrar muchos datos está es la opción más recomendada. Otra gran diferencia es que DELETE es selectivo, es decir, puedes borrar todo o parte del contenido de la tabla mientras que TRUNCATE borraría todo el contenido.

Para poder utilizar la sentencia TRUNCATE el usuario necesitará tener uno de estos roles , sysadmin,, db_owner,  db_ddladmin. El más recomendado sería el último que sirve para ejecutar cualquier comando del lenguaje de definición de datos (DDL) en una base de datos y sería más restrictivo que los otros.

Sin ninguno de estos roles SQL nos reportaría un error de tipo “No se encuentra el objeto XXX o no tiene permisos”.

Ejemplos de consultas JOINS para SQL

Para las personas que no tienen claros los conceptos de JOINS en SQL, y como bien dice el dicho; más vale una imagen que mil palabras, aquí hay un documento que explica gráficamente cual es el uso de cada consulta JOIN SQL.

Hay ejemplos de LEFT y RIGTH, INNER, OUTER Y FULL.

Ejemplo de consultas sql con Joins

Consulta Update desde una consulta Select

Logo SQL Server

A veces nos interesa actualizar un campo o varios de una tabla, pero en lugar de hacerlo a mano buscamos una opción mucho más rápida y sin posible error. Para ello hacemos un Update con los valores de una consulta Select.

En este ejemplo es de SQL Server, pero para los demás gestores de bases de datos la consulta es muy parecida:

Acualizamos el nombre del producto de la tabla productos, con la descripción del artículo.

Update Productos SET Producto.Nombre = (SELECT Articulos.Descripcion FROM Articulos WHERE Articulos.Id = Productos.ArticuloId)

Como formatear una cadena con ceros en SQL

Logo SQL Server

A verces para que queden mas bonitos los reports que asociaremos a una consulta SQL, necesitamos formatear ciertas cadenas de número con ceros a la izquierda.

Por ejemplo: tenemos el cliente 670 y el cliente 23755. En un listado quedarían un poco feos por la diferencia de longitud, por lo que deberíamos poner 00670 y 23755 para que quedaran bien alineados.

Para ello dentro de la consulta pondremos lo siguiente.

Select left(replace(str(campoDelIdDelCliente, 5), ‘  ‘, ‘0’), 5) as IdClienteFormateado * from Clientes