por Sândler

Update com order by – atualizando uma PK a partir do último

julho 27, 2015 em Mysql, Php, SQL por Sândler

Fiz um teste para incrementar 1 a mais em cada id, e de order 1 a 100 não conseguiria, então adicionei o order by decrescente, que funcionou perfeitamente!

 

Exemplo:
update modulo set id = id+1 order by id desc;

por Sândler

Protegido: Query mysql com Cast, Replace, e conversão de char para decimal

novembro 11, 2013 em Mysql, SQL por Sândler

Este conteúdo está protegido por senha. Para vê-lo, digite sua senha abaixo:

por Sândler

Buscar nomes dos campos de uma Tabela – mysql

julho 25, 2013 em Mysql, SQL por Sândler

Desta maneira, pode-se buscar os campos da tabela, para uma consulta rápida ou exportação dos nomes.
Exempo:
SELECT COLUMN_NAME as coluna
 FROM INFORMATION_SCHEMA.COLUMNS
 WHERE table_schema = 'BANCO' and TABLE_NAME = 'TABELA'
ORDER BY ORDINAL_POSITION
;
por Sândler

Diferença entre UNION e UNION ALL. Operadores INTERSECT e MINUS.

julho 16, 2013 em Mysql, SQL por Sândler

Diferença entre UNION e UNION ALL. Operadores INTERSECT e MINUS.

Melhor que explicar, é mostrar um exemplo de uma vez!

Listando conteúdo do campo na tabela_1

SELECT campo_x FROM tabela_1;

campo_x
———-
01
02
03
04

Listando conteúdo do campo na tabela_2
SELECT campo_x FROM tabela_2;

campo_x
———-
01
02
03

Utilizando UNION
SELECT campo_x FROM tabela_1
UNION
SELECT campo_x FROM tabela_2;

campo_x
———-
01
02
03
04

Utilizando UNION ALL

SELECT campo_x FROM tabela_1
UNION ALL
SELECT campo_x FROM tabela_2;

campo_x
———-
01
01
02
02
03
03
04

Utilizando INTERSECT
SELECT campo_x FROM tabela_1
INTERSECT
SELECT campo_x FROM tabela_2;

campo_x
———-
01
02
03

Utilizando MINUS
SELECT campo_x FROM tabela_1
MINUS
SELECT campo_x FROM tabela_2;
campo_x
———-
04

Referências:http://www.stanford.edu/dept/itss/docs/oracle/9i/server.920/a96540/queries5a.htm#2054266
http://www.oreilly.com/catalog/mastorasql/chapter/ch07.html

Comparação de data em MySql

maio 24, 2013 em Mysql, SQL por paulinharro

Estes dois métodos abaixo faz a comparação de datas com intervalos de 5 dias se baseando na data atual “NOW()”.

Método 1

WHERE To_DAYS(NOW())-TO_DAYS(campo_data) > 5 ;

 

Método 2

WHERE campo_data < NOW()-interval 5 DAY

 

Abraço a todos…

 

por Sândler

Criar um Array PHP direto no resultado do SQL com Campos da Tabela

maio 22, 2013 em Mysql, Php, SQL por Sândler

Criando um array php direto com o resultado do SQL trazendo em um único resultado.
TUDO QUE ESTÁ EM VERMELHO DEVE SER ALTERADO 
Deve ser alterado porque pode esta funcionalidade pode buscar em mais de um banco e/ou mais de uma tabela, onde o ideal é especificar.

 Exemplo
SELECT  CONCAT('$ret = array("', REPLACE(GROUP_CONCAT(COLUMN_NAME ,'""') , '"",','","'), '");')AS COLUNA
FROM INFORMATION_SCHEMA.COLUMNS
 WHERE table_schema = 'BANCO'
	AND TABLE_NAME like 'TABELA';
por Sândler

Preg_Mach para Mysql é chamado de REGEXP

maio 20, 2013 em Mysql, preg_match, SQL por Sândler

O REGEXP tem o conceito de Expressão Regular. Segue exemplos:

Usando como comparativo no IF:
SELECT IF(campo REGEXP ',' , 'Tem vírgula', 'Não tem Vírgula) AS campo_alias FROM tabela;

Utilizando no WHERE
SELECT * FROM contato WHERE telefone REGEXP '(435)';
SELECT * FROM user WHERE COLUMN_NAME NOT REGEXP 'id|status|dtSignInv|dtSignCo|dtSignMo';

Veja mais exemplos na referência abaixo...
Referência: http://dev.mysql.com/doc/refman/5.1/en/regexp.html
por Sândler

Agrupar todos resultados do sql em uma única linha de registro – Mysql

maio 20, 2013 em Mysql, SQL por Sândler

O group_concat agrupa todos os resultados em uma única linha, como exemplo:
SELECT GROUP_CONCAT(email SEPARATOR ';') AS emails FROM users;

Referência: http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat


                                
por Sândler

Busca de Caracteres das colunas de todas tabelas do banco em SQL-Mysql com Expressão Regular

janeiro 16, 2013 em Mysql, SQL por Sândler

Este código é para buscar caracteres das colunas no banco inteiro:
SELECT
         TABLE_NAME as tabela,
         COLUMN_NAME as coluna,
         CONCAT(LEFT(COLUMN_NAME,5),RIGHT(COLUMN_NAME,3)) as coluna_concat
      FROM INFORMATION_SCHEMA.COLUMNS
      WHERE table_schema = 'NOME_DO_BANCO'
        AND CHARACTER_LENGTH(COLUMN_NAME) > 8
        AND COLUMN_NAME NOT REGEXP ('_id|user_|fk_|userOpened|userClosed|dtModified|check_|dtSign')
        AND TABLE_NAME NOT REGEXP ('user|_log|patient|log|profile|field_of_system|passwd|sub_visit|sign|queries|country|acl_request')
        AND TABLE_NAME NOT LIKE 'visit'
      ORDER BY tabela, coluna;
por Sândler

Encontrar a coluna dentro de um banco Mysql

outubro 31, 2012 em Mysql, SQL por Sândler

Com esta query abaixo você poderá descobrir em qual tabela está o campo que está buscando.
Neste exemplo, você indicará o nome da tabela e o nome da coluna que está buscando, e caso não especificque no Banco(schema) dentro de um ambiente local, esta query buscará em todos os bancos.
Exemplo:

SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = “nome_do_shema” AND COLUMN_NAME = ‘campo_busca
GROUP BY COLUMN_NAME
ORDER BY ORDINAL_POSITION ASC;