Jump to content


_AleMAuM_

Member Since 15/09/2005
Offline Last Active 08/06/2007, 00:37
-----

Topics I've Started

Hyper Duvida Em Consulta No Mysql

12/08/2006, 14:30

Eaw gurizada..... ;)

Estou com um problema terrivel, estou com duas tabelas identicas e com valores identicos nas duas tambem, ja procurei no forum sobre isso e no google, mas não achei uma solução satisfatoria. :(
As tabelas foram criadas da seguinte forma:

CREATE TABLE `artistas` (
  `id` int(11) NOT NULL auto_increment,
  `artista` varchar(255) default NULL,
  `artista2` varchar(255) default NULL,
  `musicas` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


CREATE TABLE `musicas1` (
  `id` int(11) NOT NULL auto_increment,
  `titulo` varchar(255) default NULL,
  `formato` varchar(255) default NULL,
  `arquivo` varchar(255) default NULL,
  `diretorio` varchar(255) default NULL,
  `tamanho` float(10,5) unsigned default NULL,
  `artista` int(11) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=FIXED;


CREATE TABLE `musicas2` (
  `id` int(11) NOT NULL auto_increment,
  `titulo` varchar(255) default NULL,
  `formato` varchar(255) default NULL,
  `arquivo` varchar(255) default NULL,
  `diretorio` varchar(255) default NULL,
  `tamanho` float(10,5) unsigned default NULL,
  `artista` int(11) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=FIXED;

Dessa maneira eu tenho um registro de todas as minhas musicas armazenadas em meu computador, mas existem muitas dessas que tenho duplicadas, mas nao com o mesmo nome de arquivo, mas sim com o mesmo tamanho, cantor, titulo mas em diretorios diferentes, imaginem o espaço desperdicio de hd que eu tenho, são mais de 109,580 gb de musicas que venho coletando na net e com amigos. :(

Então criei a seguinte consulta que me lista todas os registro que contem as mesma informações.

SELECT 
m.id, m2.id AS id2, m.tamanho, m2.tamanho AS tamanho2, m.titulo, m2.titulo AS titulo2, m.diretorio, m2.diretorio AS diretorio2 
FROM musicas1 AS m 
LEFT JOIN musicas2 AS m2 
ON
m.titulo = m2.titulo AND m.tamanho=m2.tamanho AND m.artista = m2.artista
WHERE m.id != m2.id
ORDER BY m2.id

Mas o problema é que desta forma ele lista o registro desta maneira: :(

+-----+------+--------+---------+
| id  | id2  | titulo | titulo2 |
+-----+------+--------+---------+
| 482 |   13 | Crazy  | Crazy   |
|  13 |  482 | Crazy  | Crazy   |
+-----+------+--------+---------+

e eu queria que foce da seguinte maneira: :)

+-----+------+--------+---------+
| id  | id2  | titulo | titulo2 |
+-----+------+--------+---------+
| 482 |   13 | Crazy  | Crazy   |
+-----+------+--------+---------+

Não quero ferver a cabeça de ninguem, ja basta a minha. Mas se alguem tiver alguma outra forma de fazer ficaria grato. :D

flws gurizada!! :assobio:

Ah, em algums casos existem até 30 registro com as informações!!

Problema Com Sql

28/03/2006, 22:45

Opa galera... belezinha?

Seguinte, estou com um problema em um sql, no linux ele funciona perfeitamente, mas no windows nao.

SELECT ta.*,project_name, project_id, project_color_identifier,tp.task_pinned FROM `projects` as pr,`tasks` as ta,`user_tasks` as ut LEFT JOIN `user_task_pin` AS tp ON tp.task_id = ta.task_id and tp.user_id = 1 WHERE ut.task_id = ta.task_id AND ut.user_id = '1' AND ( ta.task_percent_complete < 100 or ta.task_percent_complete is null) AND ta.task_status = '0' AND pr.project_id = ta.task_project AND project_active = 1 AND project_status != 4 AND task_dynamic = 0 AND ta.task_end_date != '' AND ta.task_end_date != '0000-00-00 00:00:00' GROUP BY ta.task_id ORDER BY ta.task_end_date,task_priority DESC
Oque esta acontecendo é que no Linux funciona ta.*, mas no windows ele retorna erro, ja procurei em todos os lugares possiveis, mas nao achei nada!

Alguem poderia me dizer se isso é alguma configuracao adicional ou se é por causa que no Linux ainda esta rodando Mysql 4.x e no windows eu ja estou com 5.x.

Desde ja agradeco!

Obs. este SQL é do DotProject.

Flws.

Ordenar Uma Query Por Dois Campos

20/03/2006, 05:59

Eaw galera, tudo belezinha?

Estou com um pequeno problema, preciso executar uma query mas ela tem que ordenar dois campos, sendo que o primeiro seria o campo pendurar na ordem DESC e depois o campo id tambem na ordem DESC.

Exemplo:
SELECT * FROM `novidades` ORDER BY `pendurar`, `id` DESC LIMIT 0,4

Agora vem o problema, usando ORDER BY, ele vai ordenar o campo ID por DESC e ordenar o campo PENDURAR por ASC, como o campo pendurar somente tera os valores 0 e 1, peguei o meu amansa burro do MYSQL dei uma analisa e acabei fazendo uma guambiarra no SQL para satisfazer oque estava precisando!

Exemplo:
Consulta:
SELECT `id`, `pendurar`, (IF(pendurar=1,9000000000,0)+id) AS `ordem` FROM `novidades` ORDER BY `ordem` DESC LIMIT 0,4

Resultado:
id  pendurar ordem
1    1            9000000001
4    0            4
3    0            3
2    0            2

Mas nao sei quanto esta guambiarra ira influenciar na velocidade do MYSQL, pois ele tera que verificar todos os registros e somar os mesmo para criar o campo ORDEM, testei localmente com 100 mil registro e houve uma sensivel diferença de desempenho, se alguem conhece outro modo de ordenar sem precisar fazer esta guambiarra estou aceitando sugestoes!

Um abraco gurizada e agradeco desde ja!

Como Deixar O Input Radio Com A Msma Alt. Do Texto

20/11/2005, 05:32

Eaw gurizada, tudo belezinha!

Vou deixar um macete que sem querer descobri com o Dreamweaver 8, deixar aqueles horriveis input radio com a mesma altura do texto, assim nao ficando o texto em baixo e o seletor lah em cima quando voce usa css.

<input type="radio" name="contrato" value="0" style="height:15">

O comando é: style="height:x" onde x é o valor a se informado para o tamanho.

Quanto menor o valor menor ele fica!

Espero que sirva para alguem!!

Flws e um abraco aew!

IPB Skin By Virteq