Diferença entre datas

Ajudando o Amigo tevez hj, ele precisava saber a diferença de dias entre 2 datas.
mysql> SELECT DATEDIFF(CURDATE(),’2007-01-01′);
A função DATEDIFF() retorna um inteiro com o intervalo. a query acima retorna:

mysql> 274
A query abaixo:
mysql> SELECT DATEDIFF(‘2007-01-01′,CURDATE());
mysql> -274

Pesquisar pelo Ano

Seguindo a serie “BUSCAS”, alguem chegou ao blog buscando “mysql pesquisa por year”. vamos à solução:
mysql> SELECT * FROM tb_table where YEAR(tbl_data)=’2007′
Essa consulta traz todos os registros com ano = 2007, é claro o campo deve ser DATETIME,DATE ou TIMESTAMP

Perguntas e respostas sobre o Falcon (texto Gringo)

1. What is Falcon?
Falcon is a transactional data storage engine that runs on all popular hardware/architecture platforms. Its design takes advantage of the large memory caches available in 64-bit environments. Falcon will be the transaction management engine of choice in MySQL for businesses that need fast transaction performance and rock-solid data reliability.
2. How did the [...]

10 razões para usar o Mysql 6 – Falcon em aplicações online (Texto em inglês)

Top Reasons to use Falcon for Online Applications
1. ACID Transactions and Crash Recovery
The Falcon engine supplies full ACID (atomic, consistent, isolated, durable) transaction control coupled with crash recovery so no critical data is ever lost.
2. High-Performance Transactions
Falcon manages all transactional activity in memory (with optional paging to disk if necessary) so all transactions are serviced [...]

Funções de arredondamento

O mysql dispõe de varias funções de arredondamento:
CEILING – Arredonda para cima
mysql> SELECT CEILING(2.5) ;
mysql>3

FLOOR – Arredonda para baixo
mysql> SELECT FLOOR(2.5) ;
mysql>2
ROUND – Arredonda para o proximo inteiro
mysql> SELECT ROUND(2.51) ;
mysql>3
TRUNCATE – Elimina as casas decimais
mysql> SELECT TRUNCATE(2.5) ;
mysql>2

A Função IN

Muitas vezes precisamos fazer uma consulta, onde uma string ou inteiro devem estar entre 2 ou mais valores, por exemplo, preciso listar todos os clientes com cep = ‘79004-580′,’82020-050′,’80010-060′ ou ‘11010-040′. Se você nao conhece a função IN logo pensaria em usar OR, mas não é necessário tanto, vamos à query:
mysql> select * from tb_cliente [...]

Inserindo e alterando registros

Poucos sabem, mas existe no mysql  2 maneiras de fazer insert caso nao exista o registro e update caso exista, REPLACE e INSERT … ON DUPLICATE KEY UPDATE. A syntaxe é seguinte:
mysql> REPLACE tb_table (tbl_id,tbl_name) VALUES (‘1′,’Jão’);
Caso ja exista a chave ‘1′ o REPLACE apaga a linha e insere um novo registro com o ID [...]

Mysql Sidu

Estava navegando, e encontrei essa ferramenta, que permite, fazer tudo que você faz no console do mysql, no seu browser, bem interessante.
Uma interface intuitiva, com boas informações a respeito das tabelas e do servidor.
http://sidu.sourceforge.net/mysql-sidu.php
Vale a pena instalar. Open Source

Expressões Regulares, filtrando e-mails inválidos

Para falar de Expressões regulares, decidi usar o assunto e-mails, acho que todo desenvolvedor ja precisou validar um e-mail.
Agora vamos validar na consulta listando apenas os e-mails válidos:
mysql> SELECT eml_email FROM tb_email WHERE  eml_email REGEXP ‘^[a-zA-Z0-9]{1}([\._a-zA-Z0-9-]+)(\.[_a-zA-Z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+){1,3}$’

Agora listando os e-mails Inválidos:
mysql> SELECT eml_email FROM tb_email WHERE  eml_email NOT REGEXP ‘^[a-zA-Z0-9]{1}([\._a-zA-Z0-9-]+)(\.[_a-zA-Z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+){1,3}$’

Teta nao?

Esqueceu a senha do root?

Não se desespere, tendo acesso ao servidor é facil de recuperar, esse exemplo é baseado num servidor LINUX.
1 – Pare o servidor, mate o processo:
-> kill mysqld_safe
-> kill mysqld
2 – Inicie o servidor sem as tabelas de privilégio:
-> mysqld_safe –skip-grant-tables
3 – Modifique a senha de root:
mysql> SET PASSWORD FOR root@localhost=PASSWORD(‘nova_senha’);
4 – [...]