-
Total de itens
3.089 -
Registro em
-
Última visita
Tudo que Denis Courcy postou
-
O que você quer saber? Quantidade de registros com esta condição Quantidade de registros na tabela Quantidade de registros por determinado campo (qual campo?) Quantidade de registros por determinado grupo de campos (quais campos) Responda e leia o capítulo 6 do manual do mysql versão 4.1 tradução em português, para aumentar seus conhecimentos no assunto.
-
Oi, 'polska'! Esta funcionalidade de enviar mensagem de erro quando o string for maior que o campo, foi colocada na versão 5.x do MySQl. Como não conheço o PHP e sua dúvida está em como exibir esta mensagem neste programa, vou transferir este tópico para a área de PHP.
-
Não. Este tipo de encode é o padrão do MySQL. Não consigo pensar em nenhuma outra solução para este problema, pois os testes em minha máquina funcionam perfeitamente. Só te resta a opção do Bruno Machado no post #7 deste tópico. Se você seguir a opção dele e tiver problemas de performance, crie um campo varchar de 42 posições e grave o resultado de SHA1(<campo>) nele e crie um índice. sua pesquisa se dará pos este novo campo comparando com o SHA1('jose'), por exemplo. Mais uma coisa. Qual a versão do seu banco MySQL?
-
Oi,'thiago.mac' ! Fiz alguns testes com uma base grande que tenho aqui e sugiro o seguinte: 1) para não perder performance, caso você use índice por este campo, e para procurar dados no início do campo, utilize o comando abaixo: select nome from objeto where descricao >= 'AA' and nome <= 'AD' A resposta todos os nomes entre AA e AC inclusive. Se a pesquisa for entre AA e AH a resposta cserá entre AA e AG inclusive. 2) para procurar dados em qualquer parte do campo pesquise:select nome from objeto where SUBSTRING(descricao, 2, 2) BETWEEN 'AA' and 'AD' Procurará todos os registros onde a segunda e a terceira posições do campo estiverem entre AA e AD inclusive. Neste caso, a pesquisa sempre gerará um TABLE SCAN. (Ver seção 6.3. Funções para Uso em Cláusulas SELECT e WHERE do manual do MySQL versão 4.1 - tradução em português, para maiores informações)
-
(Resolvido) Selecionar dados com a maior data
pergunta respondeu ao Alininha de Denis Courcy em MySQL
Oi, 'Alininha' ! Não há nada de errado com o comando que você deu. O resultado é este mesmo. Por padrão, o GROUP BY vai pegar o primeiro registro que coincide com o que você determinou e vai pegar o campo agregado conforme você determinou, também. O que você achou estranho foi aparecer dados dó primeiro registro e a agregação veio do último registro, mas isto é normal. Experimente fazer deste jeito: SELECT pra_id, pra_descricao, pra_local, pra_categoria, pra_data FROM jos_praias WHERE (pra_local, pra_data) IN (SELECT pra_local, max(pra_data) FROM jos_praias GROUP BY pra_local) ORDER BY pra_data DESC, pra_descricao ASC -
Você está usando o charset=latinl, tanto tara a tabela quanto para o atributo?
-
Altere o tipo do campo na tabela para <nomedocampo> varchar(<tamanho>) binary. MAS, ATENÇÃO: FAÇA BACKUP ANTES OU FAÇA EM UMA TABELA DE TESTES. NÃO ME RESPONSABILIZO POR DANOS EM SEUS DADOS. Faça como o exemplo abaixo: alter table INSPECAO modify NM_INSPETOR varchar(50) binary; Depois disso, toda pesquisa neste campo já será caso sentitivo e diferenciará acentos. Não haverá mais a necessidade de usar as cláusulas BINARY ou REGEXP.
-
(Resolvido) Corrigir burrada no campo
pergunta respondeu ao alexandremanowar de Denis Courcy em MySQL
Oi, 'alexandremanowar' ! Crie um campo tipo data e coloque dados nele assim (supondo que o nome de seus campos sejam m_ano, m_mes, m_dia, respectivamente, para representar ano, mes e dia: UPDATE minhatabela SET minhadata = DATE(CONCAT(m_ano, '-', m_mes, '-', m_dia)); Ver manual do MySQl versão 4.1 (Tradução em português), seções 6.3.4. Funções de Data e Hora e 6.3.5. Funções de Conversão -
Experimente retirar a cláusula REGEXP. Deixe apenas a BINARY
-
Oi 'shakall' Carreguei seu exemplopara minha base de teste. A não ser que você esteja querendo outra coisa que eu ainda não entendi, o que foi pedido foi feito, sim. veja o exemplo que você passou e que está na cláusula WHERE do select que você enviou O retorno é somente a linha onde o inspetor aparece como JOSÉ (com o E maiúsculo e com acento agudo). Para provar se estava correto acrescentei as linhas abaixo e, quando executei o mesmo select, retornou, como esperado, somente a linha que já tinha sido retornada antes (linha onde CD_INSPECAO = 10). INSERT INTO `INSPECAO` VALUES (21,"ROGÉRIO","JOSE","GASPAR","aaa-1111","2008-12-11","2008-12-11") INSERT INTO `INSPECAO` VALUES (22,"ROGÉRIO","jose","GASPAR","aaa-1111","2008-12-11","2008-12-11") INSERT INTO `INSPECAO` VALUES (23,"ROGÉRIO","josé","GASPAR","aaa-1111","2008-12-11","2008-12-11") Há algo não explicado?
-
Oi, 'Bruno Machado Agostinho' Boa resposta. mas só dará certo se o engine utilizado for o MyISAM. Do contrário gerará um TABLE SCAN para saber o número total de registros.
-
Oi 'Bruno Machado Agostinho'! O problema deste método de pesquisa é que ele sempre fará um TABLE SCAN. O método que mencionei acima where binary nome = 'a'; usa o índice e se ele criar a coluna com <nome_da_coluna> BINARY varchar(<tamanho>, então todas as pesquisas serão caso sensitivo.
-
Oi, 'shakall' ! Estive relendo o manual do MySQL na tentativa de achar uma solução para este problema. Encontrei na seção 1.8.3. Extensões do MySQL para o Padrão SQL-92 o seguinte texto: Com base no texto da seção Na seção 6.3.2.2. Caso Sensitivo que diz: Desenvolvi e testei os selects exemplos abixo relacionados que retornaram o que você queria: select nome from teste where cast(nome binary) = 'a' eselect nome from teste where binary nome = 'a'; Minha base de teste tem 4 registros contendo á, a, A, Á.
-
O livro que posso recomendar é este: C++ Como Programar - Deitel - Ed.Pearson
-
Não há como descobrir a senha. Troque por outra
-
Se você está usando a versão 5.x ou superior não use decima. use double(x,y). Onde x é o número de casas antes da vírgula e o y é o número de casas depois da vírgula.
-
Este tópico já foi respondido em Descobrir senha de banco mysql Se você tivesse procurado por "senha" teria achado a resposta.
-
Oi, 'Anderson Baldner'! Pelo que entendi você está querendo fazer um relacionamento muitos para muitos na tabela "perfil". Onde um elemento desta tabela pode ter vários amigos (que pertencem a esta tabela) e, também, pode ser "amigo" de vários elementos desta tabela. Você tentou o código: que não funcionou.Para funcionar, seu raciocínio deve seguir o seguinte: SELECT * FROM perfil p INNER JOIN amigos a ON a.add = p.id INNER JOIN perfil pa ON pa.id = a.added WHERE p.id = $useridTraduzindo: Para o um determinado "fulano" (p.id = $userid), ache todos os amigos dele (pa.id = a.added). Para que esta instrução funcione sem problemas, substitua `Add` bigint(11) NOT NULL e `Added` bigint(11) NOT NULL, por `Add` int(11) NOT NULL, `Added` int(11) NOT NULL.
-
Oi, 'Montano'! Você disse: Resposta: Sim. A cláusula GROUP BY não está entendendo o que você quer. Pelo que você passou em $sql = "select * from tb_teste GROUP BY cidade";você está informando que o agrupamento é apenas por cidade. Então ele vai te dar 1 registro por cada cidade. Um outro erro que você está cometendo é o de usar o "*"(asterisco) para informar todos os campos em uma condição de agrupamento. O correto é utilizar somente os campos necessários.
-
Oi, 'Montano'! O código está certo. O que deve estar errado é o dado dentro do banco de dados. O Count(*) contará os registros independentes de term ou não dados nele. O Count(<campo>) contará os registros dos campos que estiverem preenchidos. Isto é, ignorará os campos com NULL. Ver seções 3.3.4.8. Contando Registros e 6.3.7.1. Funções GROUP BY do manual do MySQL Versão 4.1 (Tradução em Portugês)
-
Oi, Montano! Estou transferindo este tópico para a área de PHP para que eles te ensinem como se faz.
-
(Resolvido) Fazer consulta onde dois campos são da mesma tabela
pergunta respondeu ao diogoleter de Denis Courcy em MySQL
Oi, 'diogoleter' Faça assim: SELECT u.ID, u.NOME, u.ENDERECO, e1.SIGLA AS EST_RESIDENCIAL, e2.SIGLA AS EST_COMERCIAL FROM USUARIOS u INNER JOIN ESTADO e1 ON e1.ID = u.ESTADO_RESIDENCIAL INNER JOIN ESTADO e2 ON e2.ID = u.ESTADO_COMERCIAL -
Oi, 'Montano' O count ou contagem de registro é representado pela expressão count(situacao). O resultado desta expressão está representado pelo atributo qtsituacao. Então, qtsituacao é um atributo criado em tempo de execução para mostrar o resultado de count(situacao).
-
Oi, Montano! Em resposta ao post anterior onde você pergunta: Eu não estou determinando que você tenha que ter estes campos na tabela tb_consulta. Apenas disse que a tabela não está normalizada. Foi construída de forma errada. Eu quiz dizer que os atributos (campos) cod_situacao e cod_cidade deveriam estar na tabela em vez dos atributos situãcao e cidade, respectivamente. Quanto a resposta do posta acima, em: Não conheço nada de PHP, como já falei antes em outros tópicos, por isso pergunto: O PHP aceita linha quebrada, tal como no select acima que inicia em uma linha e termina 3 linhas depois? Que tipo de condição você colocou na variável $consulta? A resposta a uma ou as duas perguntas esclarecerão o erro acima.
-
Oi, 'Montano' Pelo que entendi você não normalizou corretamente a tabela tb_contrato deixando que os atributos situação e cidade fossem descritivos, quando deveria ter deixado o cod_situacao e o cod_cidade, respectivamente, para representar estes atributos nesta tabela. Se este meu entendimento estiver correto, então não há a necessidade do uso de join, ficando o seu código assim: SELECT cod_contrato, cidade, situacao, count(situacao) AS qtsituacao FROM tb_contrato GROUP BY c.cidade, c.idsituacao WHERE cidade = 'RJ' AND Produto = 'PME'