Pular para o conteúdo principal

Postagens

Mostrando postagens com o rótulo MySQL

Excluir apenas alguns registros com só uma SQL

Prezados, Mais uma vez, uma dica que ajuda demais em casos específicos como quando, por exemplo, você precisa excluir apenas alguns registros de uma tabela mas não quer executar sempre o mesmo comando trocando apenas o identificador do registro.  O comando "IN" ajuda bastante nisso, veja como aplicar. Normalmente usaríamos: DELETE FROM seubancodedados.suatabela WHERE campo = valordocampo1 DELETE FROM seubancodedados.suatabela WHERE campo = valordocampo2 DELETE FROM seubancodedados.suatabela WHERE campo = valordocampo3 etc. Aplicando o "IN" temos: DELETE FROM seubancodedados.suatabela WHERE campo IN (valordocampo1, valordocampo2, valordocampo3) Dessa forma com apenas um com comando você exclui somente os registros que tenham os identificadores valordocampo1, valordocampo2 etc. isso sem apagar toda a tabela.  Ele funciona em qualquer comando/sintaxe onde você tenha que comparar se o valor a ser modificado é igual ao que você precisa ...

Limite de conexões no MySQL

Tive um problema em um script que percorria vários produtos em dezenas de bases diferentes. Quando executado ele parava o MySQL tipo um "estouro" de conexões, tentei de tudo: aumentar o limite de arquivos abertos (open_files_limit), aumentar o limite de conexões (max_conections) e também fechar as conexões abertas (mysql_close), mas nada disso adiantou, por fim tentei o "mysql_pconnect" e tudo funcionou até mais rápido do que estava. Então se você vai usar várias conexões no mesmo script com loops use o "mysql_pconnect" ao invés do tradicional "mysql_connect". Veja mais em:  mysql_pconnect

Retirar acentos de campos MySQL

Depois de muito pesquisar na net sobre como retirar acentos em campos do MySQL, consegui resolver meu problema com a seguinte query: UPDATE tabela set campo = TRIM(UCASE(campo)), campo = REPLACE(campo ,'Á','A'), campo = REPLACE(campo ,'À','A'),  campo = REPLACE(campo ,'Ã','A'),   campo = REPLACE(campo ,'Â','A'),   campo = REPLACE(campo ,'É','E'),   campo = REPLACE(campo ,'È','E'),   campo = REPLACE(campo ,'Ê','E'),   campo = REPLACE(campo ,'Í','I'),   campo = REPLACE(campo ,'Ì','I'),   campo = REPLACE(campo ,'Î','I'),   campo = REPLACE(campo ,'Ó','O'),   campo = REPLACE(campo ,'Ò','O'),   campo = REPLACE(campo ,'Ô','O'),   campo = REPLACE(campo ,'Õ','O'),   campo = REPLACE(campo ,'Ú','U'),   campo = REPLACE(campo ,'Ù','U'),   campo =...

Hoje um susto!

Ao gravar as tabelas, verifiquei que o código do fornecedor estava com 1 caracter e tipo CHAR ao invés de 3 em VARCHAR. Ao verificar as outras tabelas, principalmente a de produtos que é a maior, por enquanto, o campo tinha sofrido a mesma alteração! Aí "ferrou", tivemos que voltar o campo ao normal, mas o MySQL não deixava trocar CHAR para VARCHAR, então nos restou recuperar os arquivos para depois ver o porquê disso... Depois de recuperados todos os arquivos (ufa!) fui ao manual do MySQL e a resposta estava neste link: http://dev.mysql.com/doc/refman/5.0/pt/silent-column-changes.html . A frustação ficou no porquê dele alterar uma coisa que EU defini... Como o meu professor de BD dizia: "O banco é meu e faço o que eu quiser com ele!", no caso do MySQL não é tão bem assim... ;)

Refresh

Ontem tive que fazer um select em uma tabela de códigos de relacionamento das lojas com os fornecedores (MySQL). Tínhamos que ler cada código da loja, buscar e processar cada arquivo nomeado com o código de relacionamento com o fornecedor. Todo o script estava certo, mas a cada passada pelo campo de código dos fornecedores a consulta deixava para trás alguns arquivos. Depois de muita tentativa, o Marcos (meu chefe) propôs algumas idéias e no final bastou, a cada execução da query, ordenar todo o select pelo campo buscado no momento. Resumindo: para vários selects, nada como dar um refresh na memória...