Archive for enero, 2010

Un par de funciones de manejo de cadenas de MySQL

By Luigi Keynes

Estuve trabajando con las bases de datos de Boonic, haciéndolas mas rápidas y livianas; y el proceso además de cumplir con estos objetivos también me valió otros resultados positivos inesperados, entre los que se destaca haber aprendido algunas cosas interesantes de mysql.

mysql

En primer lugar quiero comentarles sobre la función de cadenas CHARACTER_LENGTH, la cual nos sirve para contar los caracteres de un campo; y se usa de esta manera:

SELECT CHARACTER_LENGTH(`campo`) FROM tabla

Esta consulta nos devolvería el conjunto de registros con un campo que tendría los números de caracteres de los registros.

Ahora podemos preguntarles por las ID (siempre que la tabla en cuestión contenga un campo de esta clase con ese nombre) de aquellos registros donde el campo ‘texto’ tiene mas de 200 caracteres; la consulta sería así:

SELECT ID FROM tabla WHERE CHARACTER_LENGTH(`texto`)>200

Otra función interesante es SUBSTRING_INDEX; la analicemos un poco:

SUBSTRING_INDEX(str,delim,count)

Esta función nos devuelve la subcadena de str anterior a la aparición de count veces de delim. Si count es positivo devuelve lo que haya a la izquierda del delimitador, si es negativo devuelve lo de la derecha. Pongamos un ejemplo para que se aclaren las cosas:

SELECT SUBSTRING_INDEX(‘www.boonic.com’, ‘.’, -2);

En esta consulta estamos solicitando que nos de la subcadena que está a la derecha de la segunda aparación del delimitador “.” contando desde la derecha. El resultado sería: “boonic.com”.

Bueno, ahora hagamos las cosas mas complicadas. Supongamos que tenemos una tabla con un campo de texto llamado ‘texto’, como verán estoy muy original con los nombres, donde tenemos al final de cada registro en este campo una dirección url en html; y queremos ver todos aquellos registros donde hay mas de 200 caracteres antes de la dirección url; la consulta sería así:

SELECT * FROM  `tabla` WHERE CHARACTER_LENGTH(SUBSTRING_INDEX(`texto`,’<a href’,1))>200

En esta última consulta combinamos las dos funciones que analizamos en el post. Estas funciones resultan muy útiles para el manejo de cadenas, así como para borrar por ejemplo posts muy pequeños o irrelevantes en una gran tabla.

Fuente: MySQL

Comparte:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • BarraPunto
  • Bitacoras.com
  • LinkedIn
  • Meneame
  • MySpace
  • Twitter
  • Yahoo! Bookmarks
  • email
  • Live
  • RSS
  • Technorati

Google estaría por irse de China, ya era hora

By Luigi Keynes

Google informó a través de un post oficial que estaría decidido a dejar de censurar sus resultados en su versión china (google.cn) así esto le costara el cierre del buscador y de sus oficinas en ese país. Al parecer la gota que derramó el vaso fue un cyberataque proveniente de China (aunque no se comprobó que fuera organizado por el gobierno de ese país) orquestado en contra de las cuentas gmail de activistas chinos de DDHH. Recordemos que China es el mayor mercado (y con mayor potencial) de internet del mundo.

China-Google

En lo personal creo que es una buena noticia. Google es una empresa que siempre se ha vanagloriado de defender la libertad y los derechos de las personas, y de hecho proviene de un país que hace lo mismo (aunque a mi criterio casi siempre falla en este aspecto en la realidad). Era una gran contradicción para Google por un lado defender las libertades mientras por otro aceptaba censurar contenidos a pedido de un gobierno dictatorial.

Que habrá detrás de esto? Quizás hayan presiones encubiertas de Estados Unidos para que China flexibilice su política de derechos humanos; como sea me parece muy bien que se empiece a medir con la misma vara; no podía ser que China era siempre “premiada” mientras que países con políticas similares como Cuba eran castigadas, a veces en exceso; y con esto no defiendo al gobierno castrista, al cual considero un grupo dictatorial, ignorante e ideológicamente degenerado.

Comparte:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • BarraPunto
  • Bitacoras.com
  • LinkedIn
  • Meneame
  • MySpace
  • Twitter
  • Yahoo! Bookmarks
  • email
  • Live
  • RSS
  • Technorati