Eclesiastes

Icon

Sobre o que é este blog? O.o

MySQL visual explain

Mais uma novidade de Baron “Xaprb” Schwartz! Que desenvolve utilitários em Perl e publica estudos sobre MySQL! Dessa vez criou um utilitário que formata a saida do comando EXPLAIN, facilita bastante a visualização!

http://www.xaprb.com/blog/2007/07/29/introducing-mysql-visual-explain/

Arquivado como:MySQL, Perl

Funções para regex no MySQL similares as do Oracle

Os nomes das funções são iguais, porem não são 100% compatíveis…

REGEXP_LIKE(text, pattern [, mode])
REGEXP_SUBSTR(text, pattern [,position [,occurence [,mode]]])
REGEXP_INSTR?(text, pattern [,position [,occurence [,return_end [,mode]]]])
REGEXP_REPLACE?(text, pattern, replace [,position [,occurence [,return_end [,mode]]])

http://udf-regexp.php-baustelle.de/trac/

Arquivado como:MySQL, Regex

Procurar por campo em tabelas

Criei essa procedure para efetuar uma busca em todas as tabelas do database selecionado, resolvi fazê-la ao ver um post no fórum devmedia, se servir pra mais alguém, aí está. ;)

create procedure search_field(v_name varchar(64))
begin
    declare v_table varchar(255);
    declare done int default 0;
    declare c1 cursor for show tables;
    declare continue handler for sqlstate '02000' set done = 1;
    open c1;
    repeat
        fetch c1 into v_table;
        if not done then
            select v_table as tabela;
            set @stmt := concat('show columns from ', v_table, ' like "%', v_name, '%"');
            prepare stmt from @stmt;
            execute stmt;
            deallocate prepare stmt;
        end if;
    until done end repeat;
    close c1;
end

Arquivado como:MySQL

Mostrando a data em português

Para quem usava uma tradicional array com o nome dos meses e associava ao valor númerico, ou até mesmo, usava setlocale() com strftime(), para exibir em português a data vinda de um campo de uma tabela do MySQL, pode a partir da versão 5.0.25 definir uma variável de sistema para controlar a linguagem, assim como é feito com setlocale() no PHP!

A variável se chama lc_time_names, e pode ter o valor alterado executando:

SET lc_time_names = "pt_BR"

Para testar, execute:

SELECT DATE_FORMAT(CURDATE(), '%d de %M de %Y')

E terá como resposta: 22 de abril de 2007 

Referência

Arquivado como:MySQL, PHP

Categorias

del.icio.us