เป็นอีกหนึ่งความลักลั่นคือบางวันดันขยันโพสต์เหลือเกินสมองแล่น เขียนซะหลายโพสต์จนคนอ่านน่าจะอ่านไม่ทัน แต่ช่วงไหนไม่รู้จะเขียนอะไรก็คิดไม่ออกเลยกระจายออกไปหลาย ๆ วันดีกว่า ว่าแต่เราจะต้องหาวันที่ขยันเป็นพิเศษก่อน
SELECT DATE (post_date) AS publish_day, -- แสดงชื่อวันภาษาไทย CASE DAYOFWEEK (post_date) WHEN 1 THEN 'อาทิตย์' WHEN 2 THEN 'จันทร์' WHEN 3 THEN 'อังคาร' WHEN 4 THEN 'พุธ' WHEN 5 THEN 'พฤหัสบดี' WHEN 6 THEN 'ศุกร์' WHEN 7 THEN 'เสาร์' END AS day_name_th, COUNT (id) AS total_posts, -- รวม ID ของโพสต์ที่ซ้ำกันมาไว้ในคอลัมน์เดียวเพื่อให้ตรวจสอบง่าย GROUP_CONCAT (ID ORDER BY post_date ASC) AS post_ids
FROM `wp_posts`
WHERE post_type = 'post' AND post_status IN ('publish', 'future') GROUP BY DATE (post_date) HAVING total_posts > 1
ORDER BY publish_day DESC;
อธิบาย
- GROUP BY DATE (post_date)
DATE จะเปลี่ยน datetime เป็นวันที่เพราะเราต้องการหาวัน ไม่ใช่เวลา - COUNT (id) AS total_posts จะนับ post ที่ได้จาก GROUP BY ให้
- HAVING total_posts > 1 กรองเอาเฉพาะที่มากกว่า 1 รายการ
อ่านเพิ่มเติม
- WordPress: หาวันเสาร์ที่ไม่มีการ
- WordPress: ดูว่า post ทุก ๆ วันเสาร์ใช่มั๋ย
- MariaDB: recursive หาวันเสาร์ทุก ๆ วันจนถึงวันนี้
- WordPress: ล้างขยะที่ซ้ำ ๆ ไม่ได้ใช้
อ่านเพิ่มเติม
- WordPress: รวมค่าคอนฟิกูเรชัน wp-config.php เพื่อปรับแต่งและเพิ่มประสิทธิภาพ
- Zootopia: นครสัตว์มหาสนุก?
- Java 16 (2021): Records (คลาสข้อมูลแบบ Immutable ที่ประกาศกระชับ ไม่ต้องเขียน Getter/Setter เอง) และ Pattern Matching สำหรับ instanceof
- Java 15 (2020): Sealed Classes (การจำกัดสิทธิ์ว่าคลาสใดสามารถสืบทอดได้บ้าง) และ Hidden Classes
- MacOs: จัดการจอในจอนอกด้วย BetterDisplay