georgewar 1 Denunciar post Postado Setembro 18, 2009 veja esta query: SELECT id, mod_downloads_cat_id, titulo, descricao, img_principal FROM gsite_mod_downloads_unit WHERE mod_downloads_cat_id = 1 ORDER BY id DESC LIMIT 1 me retorna o id 1 (não é o que eu quero) SELECT id, mod_downloads_cat_id, titulo, descricao, img_principal FROM gsite_mod_downloads_unit WHERE mod_downloads_cat_id = 1 ORDER BY id DESC 7 6 5 ... 1 *Apenas retirei o "LIMIT 1": me retorna do jeito que eu quero so que todos os registros, quero so um (o de id = 7)!!!!! Pergunta, porque quando eu coloco o "LIMIT 1" ele não ordena em ordem decrescente? o campo ID é INT(11) Compartilhar este post Link para o post Compartilhar em outros sites
Leandromx 0 Denunciar post Postado Setembro 18, 2009 Cara seguinte, eu acho que esta certo.. você deve estar se confundindo ai não ? isso daqui SELECT id, mod_downloads_cat_id, titulo, descricao, img_principal FROM gsite_mod_downloads_unit WHERE mod_downloads_cat_id = 1 ORDER BY id DESC LIMIT 1 Ele irá mostrar UM ÚNICO REGISTRO Repare que quando você tirou o LIMIT 1 ele trouxe mais registros. Não seria isso?? Compartilhar este post Link para o post Compartilhar em outros sites
georgewar 1 Denunciar post Postado Setembro 18, 2009 não, você não entendeu. eu quero apenas o ultimo registro. Para isso estou usando ORDER BY id DESC LIMIT 1 so que quando coloco o LIMIT 1 ele me retorna o primeiro ID em vez do ultimo! outra coisa que acabei de ver: SELECT id, mod_downloads_cat_id FROM gsite_mod_downloads_unit WHERE mod_downloads_cat_id = 1 ORDER BY id DESC LIMIT 1 se eu pesquisar apenas por id e mod_downloads_cat_id funciona! Mas isso não tem nada haver tem? Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Setembro 18, 2009 LIMIT, obviamente limita quantos registros serão retornados. Se você pôs 1, somente um registro será retornado. Se você tirou o LIMIT e funcionou, mas você quer apenas o ID 7, utilize uma cláusula WHERE, tal queal você fez com mod_downloads_cat_id. Se você não pode tirar esse WHERE que negrite, use um um condicional AND, para adicionar "míltiplos WHERE's" Compartilhar este post Link para o post Compartilhar em outros sites
georgewar 1 Denunciar post Postado Setembro 18, 2009 puts, acho que to falando grego. Vo por imagens: me explica isso: LIMIT 1 na primeira imagem não deveria me retornar o id 7? Compartilhar este post Link para o post Compartilhar em outros sites
georgewar 1 Denunciar post Postado Setembro 18, 2009 to achando que é bug do mysql Compartilhar este post Link para o post Compartilhar em outros sites
Lucas Renan 2 Denunciar post Postado Setembro 19, 2009 se você tiver rodando isso no windows pode ser um bug sim uhahuahuahuahu tah muito estranho, era pra funcionar com o LIMIT 1 você já tentou LIMIT 0,1 ? Compartilhar este post Link para o post Compartilhar em outros sites
tygo 0 Denunciar post Postado Setembro 20, 2009 @georgewar Tu definiu esse campo id como chave primária mesmo? Se não definiu pode ser isso, eu acho. Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 20, 2009 1. qual versao do phpmyadmin ? 2. testou com outros gerenciadores ? 3. qual a versao so mysql ? 4. poste o schema da tabela Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Setembro 20, 2009 SELECT MAX( id ) , mod_downloads_cat_id FROM gsite_mod_downloads_unit WHERE mod_downloads_cat_id =1 Compartilhar este post Link para o post Compartilhar em outros sites
georgewar 1 Denunciar post Postado Setembro 20, 2009 se você tiver rodando isso no windows pode ser um bug sim uhahuahuahuahu tah muito estranho, era pra funcionar com o LIMIT 1 você já tentou LIMIT 0,1 ? estou rodando em servidor linux dreamhost!já tentei limit 0,1 limit 0,2 limit 0,3 so funciona corretamento com o limit que corresponde a todos os itens da tabela. É como ele precisasse ver todos os rows para depois organizar... @georgewar Tu definiu esse campo id como chave primária mesmo? Se não definiu pode ser isso, eu acho. está definida como chave primária tabela innodb 1. qual versao do phpmyadmin ? 2. testou com outros gerenciadores ? 3. qual a versao so mysql ? 4. poste o schema da tabela o phpmyadmin é o "phpMyAdmin - 2.11.9.4". Mas isso dá na linha de comando tb, então é o DB.mysql é o "MySQL: 5.0.32" o schema que possui é uma tabela com uma porrada de dados. Pode me explicar melhor? SELECT MAX( id ) , mod_downloads_cat_id FROM gsite_mod_downloads_unit WHERE mod_downloads_cat_id =1 MAX( id ) retorna o maior normalmente. Compartilhar este post Link para o post Compartilhar em outros sites
georgewar 1 Denunciar post Postado Setembro 20, 2009 acho que o schema que você quer é isso: Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 21, 2009 "schema da tabela" -> "estrutura da tabela" exemplo: CREATE TABLE IF NOT EXISTS foo ( bar int(3) NOT NULL auto_increment, lorem tinyint(2) unsigned NOT NULL , PRIMARY KEY (bar), UNIQUE KEY bar(bar), KEY bar_2 (bar) ); Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Setembro 21, 2009 SELECT MAX( id ) , mod_downloads_cat_id FROM gsite_mod_downloads_unit WHERE mod_downloads_cat_id =1 MAX( id ) retorna o maior normalmente. Então, qual a dúvida? Não te resolve usar a query na forma que sugeri ? Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Setembro 21, 2009 Isso ai deve ser o browser q ta dando hit no cache interno dele, tente sem ser pelo phpmyadmin q deve funcionar Compartilhar este post Link para o post Compartilhar em outros sites
georgewar 1 Denunciar post Postado Setembro 22, 2009 SELECT MAX( id ) , mod_downloads_cat_id FROM gsite_mod_downloads_unit WHERE mod_downloads_cat_id =1 MAX( id ) retorna o maior normalmente. Então, qual a dúvida? Não te resolve usar a query na forma que sugeri ? A questão não é fazer outra query para funcionar. Eu quero que a query acima funcione porque até onde eu sei ela não tem erros. E se tem quero saber onde estou errando... Isso ai deve ser o browser q ta dando hit no cache interno dele, tente sem ser pelo phpmyadmin q deve funcionar não é não porque no shell dá o mesmo erro. ESTRUTURA: CREATE TABLE gsite_mod_downloads_unit ( id INT NOT NULL AUTO_INCREMENT, remetente INT UNSIGNED NOT NULL, usuarios_id INT UNSIGNED NOT NULL, mod_downloads_status_id INT UNSIGNED NOT NULL, mod_downloads_cat_id INT UNSIGNED NOT NULL, id_os TEXT NOT NULL, titulo VARCHAR(100) NOT NULL, descricao VARCHAR(255) NULL, data_insercao DATETIME NOT NULL, downloads INT UNSIGNED NOT NULL DEFAULT 0, tamanho INT UNSIGNED NOT NULL DEFAULT 0, modo INT UNSIGNED NOT NULL DEFAULT 0, nome_arquivo VARCHAR(100) NULL, url TEXT NULL, nome_original VARCHAR(255) NULL, imagens TEXT NULL, img_principal VARCHAR(255) NULL, PRIMARY KEY(id), INDEX FK1(mod_downloads_cat_id), INDEX FK2(mod_downloads_status_id), INDEX FK3(usuarios_id), FOREIGN KEY(mod_downloads_cat_id) REFERENCES gsite_mod_downloads_cat(id) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY(mod_downloads_status_id) REFERENCES gsite_mod_downloads_status(id) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY(usuarios_id) REFERENCES gsite_mod_usuarios_usuarios(id) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY(remetente) REFERENCES gsite_mod_usuarios_usuarios(id) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin1 Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Setembro 23, 2009 tah, faz a query no shell tambem com o limit 0,30 pra ver se começa do 7 como deveria ser Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 23, 2009 por via das duvidas faça um "REPAIR TABLE" poste as outras tabelas vinculadas, pois há chaves dependentes veja tb as dicas do giesta Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 23, 2009 lembrei de algo simples... esse problema ocorre em outras tabelas ? experimentou criar um tabela nova, bem simples, somente para teste ? Compartilhar este post Link para o post Compartilhar em outros sites
georgewar 1 Denunciar post Postado Setembro 25, 2009 tah, faz a query no shell tambem com o limit 0,30 pra ver se começa do 7 como deveria ser usando um limit que seja maior que o numero de registros funciona.Hoje a tabela tem 7 registros. Se eu usar LIMIT 0,7 pra cima funciona. Se eu usar 0,6 pra baixo nao funciona por via das duvidas faça um "REPAIR TABLE" poste as outras tabelas vinculadas, pois há chaves dependentes veja tb as dicas do giesta REPAIR TABLE gsite_mod_downloads_unit The storage engine for the table doesn't support repai deve ser o INNOdb lembrei de algo simples... esse problema ocorre em outras tabelas ? experimentou criar um tabela nova, bem simples, somente para teste ? so dá isso com essa tabela.Lembrem-se do que falei acima. Se eu selecionar apenas os campos "id, mod_downloads_cat_id" na mesma query com problema funciona! Compartilhar este post Link para o post Compartilhar em outros sites