SNaRe adlı üyeden alıntı:
mesajı görüntüle
Mysql order by yapılan column'da hem integer hem de string varsa...
27
●2.287
- 26-09-2010, 22:16:25hayır dostum dediğin gibi değil,tristfs adlı üyeden alıntı: mesajı görüntüle
videolar karışık şekilde ekli db de, yani şöyle mesela
(1, 'Kavak Yelleri 1. Sezon 1. Bölüm'),
(2, 'Kavak Yelleri 1. Sezon 2. Bölüm'),
(3, 'Kavak Yelleri 1. Sezon 3. Bölüm'),
(4, 'Kavak Yelleri 10. Sezon 2. Bölüm'),
(5, 'Kavak Yelleri 10. Sezon 1. Bölüm'),
(6, 'Kavak Yelleri 2. Sezon 1. Bölüm'),
(7, 'Kavak Yelleri 2. Sezon 3. Bölüm'),
(8, 'Kavak Yelleri 1. Sezon 4. Bölüm');
ama bunları o yöntemimle düzgün sıralatabiliyorum, isim+0=0 olmaz, isim+0 string içindeki integerların yanına 0 ekler öyle sıralar, benim mantığıma göre tabi, çalıştıgına göre de öyle bişeyler olsa gerek. - 26-09-2010, 22:25:50Üyeliği durduruldu
// Okuduk $result = mysql_query("select * from videolar order by isim+0"); // Şu şekilde arraye attık for($i = 0; $array[$i] = mysql_fetch_assoc($result); $i++) ; // Neden olduğunu bilmiyor ama sonra array boş kalıyor. Onuda sildik array_pop($array); print_r($array); reverse vs zaten hak getire :)$array den çıkanı print_r yle görüp üzerinde oynarsın. Bu şekilde olur en extreme çözüm herhalde.
Yine performans kaybı olur ama minimumunu bu yapar gibi
- 26-09-2010, 22:39:49işte bu =)NiZZo_ adlı üyeden alıntı: mesajı görüntüle
SELECT * FROM ( SELECT * FROM video WHERE kategori =3 ORDER BY isim +0 ) AS donBakiyim ORDER BY id DESC
peki bu sorgu neden bu kadar uzun sürüyor acaba ? - 26-09-2010, 22:43:55Eposta Aktivasyonu Gerekmekteİçiçe sorgu olduğu için önce içteki sorguyu çalıştırıyor sonra çıkan sonucu donBakiyim diye sanal bir tablo oluşturup tutuyor ve dıştaki sorguyuda bu sanal tabloya göre çalıştırıyor. Php ile yaparsan daha fazla kasacaktır.
Ben en fazla şimdiye kadar 4 içiçe tablo kullandım ram mefta, ona göre.
- 26-09-2010, 22:54:57NiZZo_ adlı üyeden alıntı: mesajı görüntüle
sorgumun son hali:
$al=mysql_query("select * from (select * From video where kategori='$idx' order by isim+0 limit $limit1,$limit2) as donBakiyim order by id desc ");
indexleri falan ayarladım, baya hızlı oldu ve istediğim gibi sıralandı alayı, teşekkürler, repini verdim
- 26-09-2010, 22:55:47Üyeliği durduruldulocalde isim+0 şeklinde denedim. string olan alan integer a dönmedi. 0 değerinde bir alan oluşur bütün kayıtlar için. bunu istediğin kadar diz farketmez. aynı şeyi BINARY,CAST ve CONVERT ile denedim sonuç aynı. bence database ni değiştir.
+
eğer arada bulunan bölümlerde bir sorun oluşup silinmesi durumunda ( yani id lerin sırası ile bölümlerin sırası aynı sırada gitmezse ) sorun olmazmı bu sorguda?NiZZo_ adlı üyeden alıntı: mesajı görüntüle
Bütün php çözümleri adamı buraya götürür. mysql üzerinden temiz çözüm lazım sana . Kolay gelsin. Çözümü bende merak ediyorum