List:Spanish« Previous MessageNext Message »
From:Carlos Barboni Date:January 27 2011 2:14am
Subject:Re: [SOLVED] Re: Problema al ordenar una tabla
View as plain text  
De que tipo es el campo id???





El 26/01/11 22:00, "Matias Aguirre" <maguirre@stripped> escribió:

>On 01/26/2011 08:38 PM, Matias Aguirre wrote:
>> On 01/26/2011 07:36 PM, "José C. Massón" wrote:
>>> El 26/01/11 18:35, Matias Aguirre escribió:
>>>> Hola a todos,
>>>>
>>>> Tengo un problema para ordenar una tabla especifica... no se si
>>>>alguien
>>>> me puede explicar por que MySQL ordena esta tabla de esta manera. El
>>>> query es el siguiente:
>>>>
>>>> SELECT id, title, catid FROM jos_k2_items
>>>> ORDER BY id ASC, catid ASC
>>>>
>>>> y lo que devuelve:
>>>>
>>>> id     title     catid
>>>> 4     Breakfast     1
>>>> 5     Brunch     5
>>>> 6     Lunch     6
>>>> 7     Snack     7
>>>> 8     Dinner     8
>>>> 9     Dessert     9
>>>> 10     [Copy of] Dessert     9
>>>> 11     [Copy of] Dinner     8
>>>> 12     [Copy of] Snack     7
>>>> 13     [Copy of] Lunch     6
>>>> 14     [Copy of] Brunch     5
>>>> 15     [Copy of] Breakfast     1
>>>> 16     [Copy of] [Copy of] Breakfast     1
>>>> 17     [Copy of] [Copy of] Brunch     5
>>>> 18     [Copy of] [Copy of] Lunch     6
>>>> 19     [Copy of] [Copy of] Snack     7
>>>> 20     [Copy of] [Copy of] Dinner     8
>>>> 21     [Copy of] [Copy of] Dessert     9
>>>>
>>>>
>>>> Como ven, el orden de catid es distinto, va del 1 al 9 y despues del 9
>>>> al 1 y asi... muy raro
>>>> Lo que yo necesito es que vaya del 1 al 9, y empiece de nuevo del 1
>>>> al 9.
>>> Según entiendo es el funcionamiento correcto.
>>>
>>> Cuando vos le decís en la query: "ORDER BY id ASC, catid ASC"
>>>
>>> Lo que le estás diciendo es algo así como: "Ordená
> ascendentemente por
>>> el campo id, y luego, si los valores de id son iguales, ordenalos
>>> ascendentemente por el camppo cantid"
>>>
>>> En tu caso todos los valores de id, son distintos.
>>>
>>>
>>> Saludos
>>
>> Antes que nada, gracias por las respuestas.
>>
>> Entiendo lo que dicen... entonces como podria ordenarlo de la manera
>> que yo requiero? En realidad necesito que se ordene por fechas y
>> despues que se ordene por el orden de la categoria. Si yo pongo:
>>
>> /SELECT i.id, i.title, i.created, c.name as categoryname,c.id as
>> categoryid, c.alias as categoryalias
>> FROM jos_k2_items as i
>> LEFT JOIN jos_k2_categories AS c ON c.id = i.catid
>> WHERE i.published = 1
>> AND i.access <= 0
>> AND i.trash = 0
>> AND c.published = 1
>> AND c.access <= 0 AND c.trash = 0 AND ( i.publish_up = '0000-00-00
>> 00:00:00' OR i.publish_up <= '2011-01-26 19:15:44' ) AND (
>> i.publish_down = '0000-00-00 00:00:00' OR i.publish_down >=
>> '2011-01-26 19:15:44' ) AND i.catid IN (1,6,8) AND i.featured != 1
>> ORDER BY i.created DESC, i.catid ASC/
>>
>> Me devuelve:
>>
>> id     title     created     categoryname     categoryid
>> categoryalias
>> 8     Dinner     2010-12-13 21:40:03     Dinner     8     dinner
>> 6     Lunch     2010-12-13 21:38:37     Lunch     6     lunch
>> 4     Breakfast     2010-12-13 21:21:00     Breakfast     1
>>breakfast
>> 16     [Copy of] [Copy of] Breakfast     2010-11-16 19:41:12
>> Breakfast     1 breakfast
>> 18     [Copy of] [Copy of] Lunch     2010-11-16 19:41:12     Lunch
>> 6     lunch
>> 20     [Copy of] [Copy of] Dinner     2010-11-16 19:41:12
>> Dinner     8     dinner
>> 15     [Copy of] Breakfast     2010-08-12 21:49:00     Breakfast
>> 1     breakfast
>> 13     [Copy of] Lunch     2010-08-12 21:49:00     Lunch     6     lunch
>> 11     [Copy of] Dinner     2010-08-12 21:49:00     Dinner     8
>> dinner
>>
>>
>>
>> Yo necesito tener ordenado por fecha descendente y las categorias
>> ascendentes (1,6 y respectivamente) y fijense que en los primeros 3 no
>> aparece en ese orden...
>>
>>
>> Saludos
>>
>
>SELECT i.id, i.title, DAYOFYEAR(i.created) AS rdate, i.created, c.name
>as categoryname,c.id as categoryid, c.alias as categoryalias
>FROM jos_k2_items as i
>LEFT JOIN jos_k2_categories AS c ON c.id = i.catid
>WHERE i.published = 1
>AND i.access <= 0
>AND i.trash = 0
>AND c.published = 1
>AND c.access <= 0
>AND i.catid IN (1,6,8) AND i.featured != 1
>ORDER BY rdate DESC, i.catid ASC
>
>Aca les dejo la solucion temporal obtener el dia del a#o y ordenarlo por
>el mismo asi las horas no distorcionan el orden de la fecha.
>
>Gracias a todos y saludos
>
>
>
>
>
>
>-- 
>Lista de Correos de MySQL
>Para el historial de la lista: http://lists.mysql.com/mysql-es
>Para cancelar inscripción:
>http://lists.mysql.com/mysql-es?unsub=1
>


Thread
Problema al ordenar una tablaMatias Aguirre26 Jan
  • Re: Problema al ordenar una tablaCarlos Proal26 Jan
  • Re: Problema al ordenar una tablaJosé C. Massón26 Jan
    • Re: Problema al ordenar una tablaMatias Aguirre27 Jan
      • [SOLVED] Re: Problema al ordenar una tablaMatias Aguirre27 Jan
        • Re: [SOLVED] Re: Problema al ordenar una tablaCarlos Barboni27 Jan