Tag Archives: mysql

Contenido relacionado con mysql

Implementar links a post/vídeos/contenido relacionado es, al contrario de lo que pueda parecer, una tarea bastante sencilla.

Para el siguiente ejemplo imaginemos que partimos de una web estilo youtube sobre una base de datos mysql, cada pagina contiene 5 tags, una descripción y titulo. El objetivo será lanzar una consulta a base de datos que devuelva los vídeos relacionados ordenador por su relevancia/parecido.

Antes de nada vamos a tener que añadir indices fulltext a los campos de la bd sobre los que queremos lanzar la consulta (estos indices solo son compatibles con el motor MyIsam y no con InnoDB).

ALTER TABLE videos ADD FULLTEXT(title, description, keywords);

A partir de aquí ya solo queda dividir los tags/descripción/titulo en tokens y lanzar la siguiente consulta:

select * from videos where match(title, description, keywords)
against (‘word1 word2 word3 word4′ in boolean mode)
order by relevance desc

El modificador boolean mode también permite descartar los resultados que contengas ‘xxxx’ palabras. El siguiente ejemplo devuelve los resultados que contengas katrina pero no se refieran al huracán.

select * from videos where match(title, description, keywords)
against (‘+Hurricane -Katrina’ IN BOOLEAN MODE);

Más información sobre búsquedas fulltext mysql

Autoincrementar un valor al vuelo con MySql

Asignar un valor a una variable en mysql e incrementarla por cada fila que recorre una SELECT o una UPDATE permite crear un contador sin recurrir a lenguajes de programación externos.

Tabla de ejemplo

+----------+--------+-----------+
| fruit_id | name   | somevalue |
+----------+--------+-----------+
|        1 | Banana |         0 |
|        2 | Orange |         0 |
|        3 | Cherry |         0 |
|        4 | Apple  |         0 |
+----------+--------+-----------+

SELECT con valor auto increment

Definir una variable en mysql sigue la siguiente sintaxis: SELECT @i:=0, ejemplo completo:

SELECT *, @i:=@i+1 AS i FROM fruit ORDER BY name;

Y el resultado sería:

+----------+--------+-----------+------+
| fruit_id | name   | somevalue | i    |
+----------+--------+-----------+------+
|        4 | Apple  |         0 |    1 |
|        1 | Banana |         0 |    2 |
|        3 | Cherry |         0 |    3 |
|        2 | Orange |         0 |    4 |
+----------+--------+-----------+------+

UPDATE con auto increment

Igualmente, es posible declarar variable y usarlas para asignar valores a una tabla sql. El siguiente ejemplo actualiza los valores del campo somevalue ordenado por el campo name

UPDATE fruit SET somevalue = @i:=@i+1 ORDER BY name;

Una vez ejecutada la sentencia nuestra tabla contendría los siguientes valores:

+----------+--------+-----------+
| fruit_id | name   | somevalue |
+----------+--------+-----------+
|        1 | Banana |         2 |
|        2 | Orange |         4 |
|        3 | Cherry |         3 |
|        4 | Apple  |         1 |
+----------+--------+-----------+

Vía electrictoolbox

Lo mejor del 2009

Apenas quedan unos días para que el 2009 llegue a su fin y parece un buen momento para echar la vista atrás y recordar algunos de los temas más destacados que hemos tratado por aquí.

PHP – MySql

Javascript / jQuery

Linux

Vídeos


Read more

Cambiar password de root en MySQL

No tenía pensado hacerlo pero finalmente he instalado windows 7 en una de las particiónes del portátil. En cuanto he tenido los paquetes de software básicos instalados (codecs, itunes, jDownloader, virtualbox, etc) me he puesto a instalar un servidor apache/php/mysql con wampserver.
mysql
En la configuración por defecto de wampserver la cuenta de root de mysql no tiene ningun password. Al margen de lo que esto pueda implicar en materia de seguridad, resulta que wordpress no funciona si la conexión a mysql no lleva password, así que me ha tocado cambiarla. Si algún día necesitáis hacer lo mismo, la sentencia sql es la siguiente:

UPDATE mysql.user SET Password=PASSWORD('nuevoPassword') WHERE User='root';
FLUSH PRIVILEGES;

La Comisión Europea rechaza la compra de Sun por parte de Oracle

Los reguladores antimonopolio de la UE han presentado objeciones a la adquisición de Sun por parte de Oracle al entender que es una amenaza contra la competencia.
oracle
Al parecer Mysql es el centro de la discordia. Los reguladores entienden que la adquisición, ahora en riesgo o al menos retrasada, perjudicaría la competencia en el mercado de bases de datos.

Oracle por su parte argumenta que MySQL es software de código abierto y no puede ser controlado por nadie. Además estima que el mercado de bases de datos es sumamente competitivo con al menos ocho “jugadores fuertes”, entre ellos IBM, Microsoft, Sybase y tres proveedores de código abierto.

Guía de Optimización MySQL

Hace unos días me llego un email de Sun microsystems que me ofrecía la descarga gratuita de un pdf que habla de las principales vías para optimizar la base de datos MySQL y lograr que cubra las necesidades de tu negocio. Entre otros temas, incluye:

  • Introducción a la escalabilidad
  • Replicación de la base de datos
  • Linux Heartbeat
  • Instrumento de Bloque Replicado y
    Distribuido (DRBD por sus siglas en inglés)

Descarga más documentos de Sun desde aquí

Lo mejor de la semana en la red

Entrevista al CEO de abiquo
En este podcast Diego Mariño, CEO de Abiquo, nos habla sobre la historia de su empresa, su producto principal: Abicloud y sobre el estado del Cloud Computing en España y en el mundo.

Nuevo modelo de lanzamientos para MySQL
El próximo lanzamiento bajo este nuevo modelo tendrá el nombre código de “Azalea” e incluirá las características planeadas para MySQL 6.0 que están lo suficientemente estables como para ser incorporadas en el actual MySQL 5.4.

12 herramientas gratuitas para monitorizar el uptime
Algunas de ellas testean si el site está caído desde diferentes puntos del planeta. Otras te avisan vía email, mensaje de texto, etc de las diferentes alertas que puedan darse.

Dificulta la descarga de imágenes de tu proyecto web
Metodo para proteger las imágenes de nuestro proyecto web de ser descargadas. Hace uso de PHP, la librería GD y Javascript.

Lo mejor de la semana en la red

Google Chrome 2.0
Versión que trae mejoras de estabilidad y velocidad. En cuanto a nuevas funcionalidades… poquita cosa, opción de rellenar automáticamente los formularios web y poco más que mencionar.

Dell prueba android en sus netbooks
Vídeo de un ingeniero de Dell mostrando un Mini 10v funcionando con la versión Cupcake de Android.

Ubuntu 9.10 alpha 1 apunta maneras
Parece que Ubuntu 9.10 va a ser una buena versión, de momento la primera alpha ya muestra mejoras importantes de rendimiento y en acceso a disco.

Gmail labs añade traducción a los correos
Ya es capaz de traducir automáticamente cualquier e-mail que nos llegue tan sólo haciendo un simple clic.

Agresiva campaña de pepephone
¡Mira que me voy! Una campaña fresca y un tanto desvergonzada que, a buen seguro, no dejará indiferente a nadie

Calendario con jQuery
Plugin que te permite generar un calendario flexible y ligero para tus aplicaciones web, muy al estilo de Google Calendar.

Explain en Mysql
Función que nos puede ayudar a la hora de optimizar nuestra tablas y consultas sql.

lo mejor de la semana en la red

7 diferencias javascript entre firefox e internet explorer
Interesante referencia para aquellos que no hagan uso de ningún framework js

Aplicaciones de escritorio en php
Introducción a php-gtk

Crea tus propios diseños css desde 0
960 Grid System, photoshop y un poco de paciencia

Presentaciones de la ultima MySql Conference & Expo 2009
Optimizaciones, clusters, mejoras de rendimiento, etc

Mootools file manager
Curradísimo script para mootools que permite subir,ver y modificar tus ficheros vía browser

Linux llega al 1% de cuota de mercado y Mac OS roza el 10%
Informe del mes de abril de NetApplications

El Partido Pirata sueco en el Parlamento Europeo
Un sondeo revela que obtendría los votos necesarios para contar con un escaño en el Parlamento Europeo

Blogs interesantes sobre seguridad
Recopilación de los mejores blogs de dicha temática (phising, bugs…)

Lo mejor de la semana en la red


GPGPU en Snow Leopard

OpenCL será integrado en el core del próximo Mac OS X

MySQL 5.4 Preview
Se espera que llegue a finales de año o principio del año próximo

Ubuntu 9.04 release
Importantes mejoras de rendimiento para la distro más popular del panorama actual

Oracle se hace con Sun
Y hace suyos java, mysql, virtualbox etc.

Php quick profiler
El firebug de php

Geolocalización por IP mediante Javascript y JSON
geolocalización con javascript