Archivo de la etiqueta: mysql

Función GROUP_CONCAT de MySQL

MySQL logoDescubrí el otro día la función GROUP_CONCAT, que puede ser muy útil cuando hacemos consultas a MySQL donde usamos el GROUP BY. Sirve para concatenar con un separador, todos los registros afectados por un GROUP BY en un solo campo de salida. Lo mejor es explicarlo con un ejemplo.

Tenemos dos tablas, Contenidos y Categorías (o cualquier relación típica de 1:N o N:N). El objetivo es sacar todos los contenidos, y en cada registro de contenidos, las categorías de cada uno de ellos.

Sigue leyendo Función GROUP_CONCAT de MySQL

Aplicaciones para Windows XP

Windows XP LogoFormatear un ordenador es una operación fácil. Instalar un Windows tampoco es una operación complicada. Instalar todos los drivers o controladores del hardware, si se tienen todos los CDs necesarios, también se hace rápidamente. Pero instalar todos los programas y aplicaciones que utilizamos, y configurarlas… puede ser un paso muy largo y agotador: buscar programa, descargar programa, instalar programa, configurar programa, …

Para hacer esta operación más fácil, existen los Windows Unattended’s, de los que ya hablaré otro día. Hoy solo quiero hacer una lista de aplicaciones que uso, para tenerla a mano de cara a cuando hago una buena puesta a punto al ordenador o portátil Sigue leyendo Aplicaciones para Windows XP

Diferencias entre ENUM y SET en MySQL

MySQL AvanzadoExistes dos tipos de campo en MySQL que siempre los he visto iguales. He investigado un poco en sus diferencias y lo que voy a comentar sirve tanto para MySQL 5.1 como MySQL 5.4.

Tanto ENUM como SET, sirven para determinar los valores que puede tener un campo de una tabla, es decir, puedes determinar que en un campo solamente pueda contener valores de una lista definida por ti. La principal diferencia es que un campo del tipo ENUM siempre contiene sólo un valor de la lista; y un campo del tipo SET puede contener ninguno, uno o varios valores de la lista.

Hay más características de estos dos campos de MySQL, que les hace diferenciarse y es necesario conocerlas para decidir cual es más apropiado para nuestro diseño de la base de datos.

Sigue leyendo Diferencias entre ENUM y SET en MySQL

Instalar y configurar XAMPP y Eclipse en Windows

XAMPP logoEste es un pequeño manual de como instalar y configurar XAMPP y Eclipse en un ordenador con Windows. Con estas herramientas, se pueden desarrollar aplicaciones web en local de manera cómoda y rápida, sin problemas de depender de un hosting o estar todo el rato subiendo archivos por FTP.

XAMPP es un servidor que solo requiere descargar, descomprimir y ejecutar. Incorpora Apache (servidor web), MySQL (base de datos), PHP, Perl, Mercury (servidor de correo), FileZilla Server (servidor FTP), … Y Eclipse es un IDE (entorno de desarrollo integrado) que permite programar en múltiples lenguajes, añadir multitud de plugins que van generando la comunidad, … La versión para programar en PHP se llama Eclipse PDT, y la descargaremos desde Zend porque añade un plugin para debugar, el Zend Debugger Sigue leyendo Instalar y configurar XAMPP y Eclipse en Windows

WordPress y problemas con el módulo ModSecurity de Apache

Apache_securityVoy a explicar un problema que tuve con WordPress, que me tuvo 2 días dando vueltas, probando cosas, pidiendo ayuda, … y no conseguí nada hasta que José Román Hernández de Emezeta dió con el problema.

Estaba creando un artículo sobre Procedures en MySQL para hacer estadísticas, cuando enganché código de la Procedure y al darle a guardar, se producía un error. La página que se mostraba era una página 404 del tema actual, pero la ruta iba a /wp-admin/post.php .

Sigue leyendo WordPress y problemas con el módulo ModSecurity de Apache

Procedure de estadísticas que haga un INSERT o un UPDATE (II)

MySQL_Stored_Procedure_ProgrammingComo vimos en la entrada anterior, creamos una stored procedure para hacer el incremento típico de unas estadísticas.

Pero se puede dar el caso, de que se quieren incremenetar una serie de registros a la vez. Por poner otro ejemplo, tenemos una tabla de tags, donde se almacenan las veces que son asignadas a una entrada. Cuando se crea una entrada, hay que incrementar todas las tags que tiene la entrada asignadas.

Sigue leyendo Procedure de estadísticas que haga un INSERT o un UPDATE (II)

Procedure de estadísticas que haga un INSERT o un UPDATE (I)

MySQL_Stored_Procedure_ProgrammingLa típica tabla de estadísticas, tiene una serie de registros, donde se almacenan valores que se van incrementando: visitas, votos, puntos, … Para la operación de incrementar las estadísticas, tenemos que contemplar dos casos:

  • Si no existen estadísticas sobre este registro, se tiene que crear el registro en la tabla de estadísticas con un INSERT
  • Si ya existen estadísticas, se tiene que incremenetar el valor del registro de la tabla de estadísticas con un UPDATE

Hay tres opciones a la hora de programar el sistema que incremente las estadísticas en MySQL Sigue leyendo Procedure de estadísticas que haga un INSERT o un UPDATE (I)

STRAIGHT_JOIN y el order de las tablas en JOINs de MySQL

High Performance MySQLSegún leo en un artículo, el optimizador de JOINs de MySQL puede cambiar el orden en que se realizan los JOINs.

Al autor del artículo, las consultas de una aplicación le tardaban casi un minuto. Después de buscar una solución, decubrió que poniendo “SELECT STRAIGHT_JOIN …“, obligaba a MySQL a tratar las tablas de los JOINs en el orden en que se establecían, es decir, primero la de la izquierda y después la de la derecha.

Sigue leyendo STRAIGHT_JOIN y el order de las tablas en JOINs de MySQL