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
>