Mar 2 2010

Buscar en un campo separado por comas en MySQL

Debido a un desarrollo en el que actualmente trabajo, me tope con esto que resulto ser muy sencillo de hacer, pero no esta tan documentado como se espera. Que pasa si tienes un campo con cadenas de texto o enteros separados por coma, como categorías, nombres etc.

Un ejemplo practico seria,  el campo “cats” tiene un contenido como ‘2,11,10,1,16′, si usamos el tradicional LIKE:

SELECT * FROM tabla WHERE cats LIKE '1';

Se podría pensar que esta solución es adecuada pero no es así, ya que nos devolvera:

cats:

  • 11
  • 10
  • 1
  • 16

Para lograr obtener solo el ‘1′ y no todos los números que contengan el ‘1′ se debe utilizar esta sintaxis:

SELECT * FROM tabla WHERE FIND_IN_SET('1', cats)

En el ejemplo práctico ‘tabla’ es el nombre de la tabla en la que queremos buscar y ‘cats’ el nombre del campo.

  • Share/Bookmark

Feb 11 2010

Error APT: E: Unable to lock the download directory

Aquí otro tip rápido para nuestras cajas con Linux, si al hacer un:

$ apt-get upgrade

Nos devuelve un error algo así:

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages have been kept back:
  bind9 bind9-host dnsutils libbind9-30 libdns35 libisc35 libisccc30
  libisccfg30 liblwres30 linux-generic linux-headers-generic
  linux-image-generic linux-restricted-modules-generic netatalk
The following packages will be upgraded:
  libmysqlclient15-dev libmysqlclient15off mysql-client mysql-client-5.0
  mysql-common mysql-server mysql-server-5.0 php5-imap
8 upgraded, 0 newly installed, 0 to remove and 14 not upgraded.
3 not fully installed or removed.
E: Could not get lock /var/cache/apt/archives/lock - open (11 Resource temporarily unavailable)
E: Unable to lock the download directory

Lo único que debémos hacer como root es:

$ pkill apt
  • Share/Bookmark

Feb 4 2010

Reparar tabla corrupta en MySQL

Lo único que hay que hacer, es un query mediante PHP, en  la consola interactiva o vía PhpMyAdmin conteniendo lo siguiente:

REPAIR TABLE mytablacorrupta;

Con esto, MySQL reparara los problemas que tengamos.

  • Share/Bookmark

Ene 18 2010

Problema con IE, ACLayers.dll en Windows XP

Varios equipos de la agencia comenzaron a presentar este problema, al abrir el Internet Explorer y en algunos casos, el Windows Media Player, se botaba un error donde se lee algo como esto:

AppName: iexplore.exe AppVer: 8.0.6001.18702 ModName: aclayers.dll
ModVer: 5.1.2600.5906 Offset: 0003d7fb

El arreglo es simple, pero me tomo un buen rato encontrarlo, ya que es un problema con una actualización del sistema publicada en Enero, así que era tan reciente que no existe mucha documentación al respecto, lo único que deben hacer es desinstalar la actualización:

KB955759

Espero les sea útil.

  • Share/Bookmark

Dic 23 2009

Perl para reemplazar cadenas de texto en archivos

Aquí un tip rápido para buscar cadenas de texto dentro de un patrón de ficheros o también para uno solo. Por ejemplo, si tenemos 100 ficheros que en algún lugar en su interior contienen una cadena que queremos reemplazar, nos hará el trabajo pesado en un par de segundos.

Esta es la sintaxis:

perl -pi -e ’s/cadena vieja/cadena nueva/g’ patron

Un ejemplo practico seria:

perl -pi -e ’s/index.html/index.php/g’ *.html

  • Share/Bookmark