ay-yıl akıllıca sıralama

2 Cevap php

Ben ay-bilge veri bazı girdileri var

gibi

May-2009
April-2009
March-2009
-
-
-
-
-
-
January-2000

Şimdi bu veri mysql sorgusu ile aylık sıralanabilir istiyorum.

$q=mysql_query(SELECT id,action,
     L1_data,
     L2_data,
     L3_data,
     L11_data 
  from table 
  where action='feild name' 
  ORDER BY DATE_FORMAT(L11_data,'%m-%Y') DESC);

while($r=mysql_fetch_array($q))
{
-------
}

Burada L11_data tüm ay değerlerini (örn. Mayıs-2009, vb) sahiptir biridir

I am using this query but it is of no help. What I want is to show data month-wise from May-2009 to January-2000 Can anyone please suggest some code for this?

2 Cevap

Sen L11_data biçiminde "Mayıs-2009" zaten varsayarak, STR_TO_DATE(L11_data, '%m-%Y') tarafından sipariş etmeniz gerekir. L11_data, bir tarih ya da datetime alanı ise, yalnız bu alana göre sipariş edilmelidir.

Edit: Üzgünüm, "Temmuz" biçimi için% M değildir% m olmalıdır. % M "07" biçimini temsil eder. "Temmuz" biçimi için% b.

SELECT
    id, action,
    L1_data, L2_data,
    L3_data, L11_data 
FROM table 
WHERE action = 'field name' 
ORDER BY STR_TO_DATE(L11_data, '%M-%Y') DESC

Senin durumunda veri miras olabilir, ancak yeni sistemler oluştururken, uygun bir formatta veri saklamak gerekir. MySQL ay-yıl çiftleri için, tarih tip olacaktır. MySQL, tarih örneğin "00-01-2000" Ocak 2000 temsil edeceğini, ay ve gün bölgelerinde bir sıfır değeri olabilir.

Eğer hassas bir şekilde yazdığınız alan, seçme ve sıralama kaydedilir veri varsa yol kolaydır.