คุมการแสดงผลตามเวลา


ตัวอย่าง query กำหนดเวลาแสดงผลของ mysql ให้แสดง ไม่แสดงตามเวลาที่กำหนด โดยยูเซอร์เลือกที่จะใส่ไม่ใส่ time, expire, start, end ก็ได้ เช่น จะแสดงหลังวันที่ xxx ไปตลอดกาลก็ใส่แต่วันที่เริ่มต้น จะแสดงจนถึงวันที่เท่าไหร่ก็ใส่เฉพาะวันที่สิ้นสุด จะแสดงในช่วงเวลาก็ใส่ทั้งคู่ กลับกัน ไม่ใส่ทั้งคู่ก็เหมือนไม่กำหนดเงือนไขอะไรเลย

SELECT *,
       CASE
         WHEN datePublish != '0000-00-00'
              AND dateExpire != '0000-00-00' THEN
         IF(datePublish <= Curdate()
            AND dateExpire >= Curdate(), true, false)
         WHEN datePublish != '0000-00-00' THEN
         IF(datePublish <= Curdate(), true, false
         )
         WHEN dateExpire != '0000-00-00' THEN
         IF(dateExpire >= Curdate(), true, false)
         ELSE true
       end AS published
FROM   pp_contents
HAVING published = true

About plusmagic

PHP lover in thailand

Posted on 2012/12/10, in database, MySql, programming and tagged , , , , , . Bookmark the permalink. ใส่ความเห็น.

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

%d bloggers like this: