De fábrica, el panel de control de Joomla! sólo permite buscar artículos por título. Esto es algo limitante ya que a veces necesitamos buscar artículos según su contenido. Aunque existen muchas extensiones para Joomla! que proveen esta funcionalidad (poder buscar artículos por tag, contenido, autor), es más rápido y fácil conectarse directamente a la base de datos MySQL y ejecutar una simple consulta SQL.

En el CMS Joomla! los artículos se almacenan en la tabla "content":

mysql> describe XXXX_content;
+------------------+---------------------+------+-----+---------------------+----------------+
| Field            | Type                | Null | Key | Default             | Extra          |
+------------------+---------------------+------+-----+---------------------+----------------+
| id               | int(10) unsigned    | NO   | PRI | NULL                | auto_increment |
| asset_id         | int(10) unsigned    | NO   |     | 0                   |                |
| title            | varchar(255)        | NO   |     |                     |                |
| alias            | varchar(255)        | NO   |     |                     |                |
| introtext        | mediumtext          | NO   |     | NULL                |                |
| fulltext         | mediumtext          | NO   |     | NULL                |                |
| state            | tinyint(3)          | NO   | MUL | 0                   |                |
| catid            | int(10) unsigned    | NO   | MUL | 0                   |                |
| created          | datetime            | NO   |     | 0000-00-00 00:00:00 |                |
| created_by       | int(10) unsigned    | NO   | MUL | 0                   |                |
| created_by_alias | varchar(255)        | NO   |     |                     |                |
| modified         | datetime            | NO   |     | 0000-00-00 00:00:00 |                |
| modified_by      | int(10) unsigned    | NO   |     | 0                   |                |
| checked_out      | int(10) unsigned    | NO   | MUL | 0                   |                |
| checked_out_time | datetime            | NO   |     | 0000-00-00 00:00:00 |                |
| publish_up       | datetime            | NO   |     | 0000-00-00 00:00:00 |                |
| publish_down     | datetime            | NO   |     | 0000-00-00 00:00:00 |                |
| images           | text                | NO   |     | NULL                |                |
| urls             | text                | NO   |     | NULL                |                |
| attribs          | varchar(5120)       | NO   |     | NULL                |                |
| version          | int(10) unsigned    | NO   |     | 1                   |                |
| ordering         | int(11)             | NO   |     | 0                   |                |
| metakey          | text                | NO   |     | NULL                |                |
| metadesc         | text                | NO   |     | NULL                |                |
| access           | int(10) unsigned    | NO   | MUL | 0                   |                |
| hits             | int(10) unsigned    | NO   |     | 0                   |                |
| metadata         | text                | NO   |     | NULL                |                |
| featured         | tinyint(3) unsigned | NO   | MUL | 0                   |                |
| language         | char(7)             | NO   | MUL | NULL                |                |
| xreference       | varchar(50)         | NO   | MUL | NULL                |                |
+------------------+---------------------+------+-----+---------------------+----------------+
30 rows in set (0.00 sec)

Esta tabla posee una gran cantidad de columnas, pero las que nos interesan son las columnas "title", que almacena el título de cada artículo, y "fulltext", que guarda el contenido de los mismos.

Para buscar artículos por contenido entonces es posible ejecutar la siguiente consulta SQL:

select title from XXXX_content where XXXX_content.fulltext like '%systemd%';

Esta consulta busca en el contenido de los artículos de acuerdo a una palabra clave: systemd.

El caracter % se utiliza como un comodín que coincide con cualquier número de caracteres aleatorios (0 ó más).

mysql> select title from XXXX_content where XXXX_content.fulltext like '%systemd%';
+---------------------------------------------------------------------------------------------------------+
| title                                                                                                   |
+---------------------------------------------------------------------------------------------------------+
| ¿Quién es init?                                                                                         |
| Virtualización con KVM en Linux: cómo compilar e instalar QEMU+libvirt+virt-manager desde los fuentes   |
| Cómo instalar CentOS 7 con KDE                                                                          |
| ¿Qué hacer después de instalar CentOS 7 (con KDE)?                                                      |
| Mi primer contacto con FirewallD                                                                        |
| Dando los primeros pasos con Gentoo                                                                     |
| ¿Por qué SystemD es una mierda?                                                                         |
| Lo más leído de septiembre 2014                                                                         |
| Bash: cómo obtener los códigos de retorno de todos los procesos en un pipeline                          |
| Lo más leído de octubre 2014                                                                            |
| ¿Por qué los sysadmins detestamos a systemd?                                                            |
| Lo más leído de noviembre 2014                                                                          |
| El bazar se ha convertido en catedral                                                                   |
| Resumen de 2014                                                                                         |
| Probando la pre-alpha release de Devuan (Debian Jessie libre de systemd)                                |
| Resumen de enero y febrero 2014                                                                         |
| Cómo convertir un Debian 8 "Jessie" en Devuan                                                           |
| Desarrolladora del kernel Linux abandona la comunidad por considerarla tóxica                           |
| La invasión de systemd en el espacio de servidores Linux                                                |
| Cómo obtener un certificado SSL gratis de Let's Encrypt                                                 |
| Resumen de 2015                                                                                         |
| Agregan PulseAudio en Slackware 14.2 beta 1                                                             |
+---------------------------------------------------------------------------------------------------------+
22 rows in set (0.03 sec)

Y luego dicen que odio systemd, 22 artículos le he dedicado :)

Referencias

MySQL 5.7 Reference Manual - String Comparison Functions


Tal vez pueda interesarte


Compartí este artículo