|
|
|
MySQL ต้องการ GROUP BY แค่เดือนในลักษณะแบบนี้ทำยังไงครับ |
|
|
|
|
|
|
|
Code (SQL)
SELECT * FROM test.register group by month(my_date) ASC
|
|
|
|
|
Date :
2013-11-05 13:17:42 |
By :
zoceferatu |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มั่วๆ
Code (PHP)
$sqlm="SELECT MIN(my_date) AS MYDATE FROM TABLE GROUP BY MONTH(my_date), YEAR(my_date) ORDER BY MYDATE";
|
|
|
|
|
Date :
2013-11-05 13:24:29 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณครับใช้ได้เลย แต่เดี๋ยวก่อนกรณีที่มีหลายปี จำเป็นต้องใส่
YEAR(my_date) ต่อท้ายด้วยไหมครับ
|
|
|
|
|
Date :
2013-11-05 13:29:38 |
By :
meannerss |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้ DATE_FORMAT ก็ได้ครับ
|
|
|
|
|
Date :
2013-11-05 13:32:22 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แอบสงสัยอยู่เหมือนกันครับ ว่าทำไมบางทีก็ตัดสตริงกับฟิลด์ DATE ได้ บางทีก็ตัดไม่ได้
|
|
|
|
|
Date :
2013-11-05 13:37:57 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วครับขอบคุณนะครับ ทีนี้มีโจทย์ใหมามาให้คิดต่อ อิอิ
นายสมชายอาจจะมีหลายบัญชี(acc) แต่ต้องการให้แสดงบัญชีละ 1 รายการและเป็นรายการวันที่ล่าสุด
ผลลัพท์ที่ต้องการคือ
สมชาย / 999 / 2013-04-20
สมชาย / 111 / 2013-06-25
ทดลองใช้โค้ดนี้ แรกๆ ก็ทำงานได้ดีครับ แต่หลังๆไม่ได้กลายเป็นเรียงเอาข้อมูลเก่าสุดมาซะงั้น
$sql="SELECT * FROM TABLE WHERE name='สมชาย' GROUP BY acc ORDER BY my_date DESC ";
|
|
|
|
|
Date :
2013-11-05 14:00:54 |
By :
meannerss |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|