เรียงข้อมูลใหม่ไปหาเก่า แล้วแสดงออกมาเป็นกรุ๊ป แสดงผลไม่ตรงครับ
news_time : ชนิดของตัวแปรคือประเภทไหนครับ date,time,date/tine, text etc.
Date :
2014-05-02 09:30:31
By :
apisitp
news_time กับ cate_id เป็น int ครับ
Date :
2014-05-02 09:36:16
By :
sakang
งั้นตอบคำถาม ว่า ที่เรียงไม่เหมือนกัน เพราะมันมี GROUP BY `cate_id` มาดักก่อน....
ในความเข้าใจของผม เมื่อ GROUP BY ค่าของ cate_id มีซ้ำกันจะถูกจัดกลุ่ม
หากจะใช้ GROUP BY ค่าของ cate_id ตัวที่จะนำมาเป็น ORDER ก็น่าจะควรเป็น cate_id
SELECT * FROM `news` GROUP BY `cate_id` ORDER BY `cate_id` DESC
เพราะการ group by ค่า news_time ที่ได้ออกมา จะเป็นค่าของ id ตัวล่าสุด
ภายในกรุ๊ปนั่น ๆ จะไม่เรียงค่าให้ตามที่เราคิด
ลองเอา
SELECT * FROM `news` GROUP BY `cate_id` ORDER BY `news_time` DESC
ไปรับใน phpmyadmin ดู จะเห็นว่า ค่าสุดท้ายของ news_time คืออะไร
หากจะต้องการให้มันเรียง ตาม news_time ต้องทำ 2 ขั้น คือ
1. group by ก่อน เอาค่า cate_id พักไว้
2. เอาค่า cate_id เป็นเงื่อนไข where เพื่อการจัดกลุ่ม และที่นี้จะใช้ ORDER BY `news_time` DESC ได้แน่นอน
Date :
2014-05-02 09:48:42
By :
apisitp
อยากให้มัน ORDER BY `news_time` DESC ก่อน แล้วค่อยมา GROUP BY `cate_id` อะครับ
ตอนนี้ใช้วิธี query ด้วย
SELECT * FROM `news` ORDER BY `cate_id` DESC
แล้ว foreach มาแยก group คิดใว้ระยะยาม หากมีข้อมูลเป้น 10,000 แถว หรือมากกว่านั้น มันจะทำให้ช้า เลยอยากหาวิธีที่ query จบในครั้งเดียวอะครับ
Date :
2014-05-02 10:48:56
By :
sakang
ลองหาเรื่อง SUBQUERY อ่านดู แต่ผมก็ยังไม่เคย คิวรี่ซ้อนในคิวรี่สักที
Date :
2014-05-02 11:17:56
By :
apisitp
Code (PHP)
SELECT * from(
SELECT
*
FROM news
ORDER BY news_time desc
) as news
GROUP BY catid
ลองดูครับ
Date :
2014-05-02 12:34:11
By :
zinlucifer
ถ้าเราจัดกลุ่ม ตามหมวดหมู่ คำถามที่เจ้าของกระทู้ต้องตอบให้ได้คือ
news_time จะเรียงด้วยค่าไหน????
วันที่ล่าสุด หรือวันที่น้อยสุด
เพราะเมื่อจัดกลุ่ม ข้อมูลต่างๆที่ไม่เหมือนกันจะแสดงเพียงเรคอร์ดเดียว
ถ้าอยากได้ค่าล่าสุด MAX(news_time)
ถ้าอยากได้ค่าน้อยสุด MIN(news_time)
Date :
2014-05-02 12:49:02
By :
{Cyberman}
ขอบคุณทุกคนครับ
คห 6 ได้ตามที่ต้องการเลยครับ คือต้องการให้มันเรียงเวลาจากมากไปหาน้อยก่อน แล้วค่อยมาเรียงกลุ่มครับ
Date :
2014-05-02 23:11:29
By :
sakang
Date :
2014-05-03 11:34:41
By :
apisitp
Load balance : Server 00