2017-06-22 67 views
1

我需要爲我的項目解決方案..事實上,我陷入了一個問題..讓我告訴你我的問題的圖片。 Senerio of my problemMySQL查詢的解決方案

如果你能看到,有一些12個月的列。所以我需要運行MySQL查詢或程序,它可以顯示包含文本「未付費」的選定列。

例如。

如果我想檢查一月至三月或六月至十一月等成員誰是「未付」..所以這是什麼解決方案......?

我知道我們可以使用「之間」子句,但我沒有得到這個想法..因爲我想使用兩個下拉菜單,用戶可以選擇從哪個月到哪個月他們想看到的月份。

請幫我擺脫這個問題..我是一個新的PHP初學者。

+1

分享你的模式 –

回答

1

如果我是你,我會將月份表示爲日期,即使字符串(例如,'2017-06'),然後將月份映射到語義表示字符串(例如'June')。因此,一種方法是將日期存儲在MySQL數據庫中作爲varchar

就建模數據庫中的數據而言,我會創建一個包含三列的表1)user_id; 2)due_date; 3)payment_status

.----------------------------. 
| 0 | 2017-06 | paid  | 
| 1 | 2017-07 | not paid | 
| 2 | 2017-08 | paid  | 
| 3 | 2017-09 | paid  | 
'----------------------------' 

現在您可以編寫一個查詢來檢索1月至3月之間有「未付費」的成員。 (注意:這只是一種方式,有很多方法可以查詢)

SELECT 
DISTINCT(user_id) 
FROM payments_table 
WHERE due_date >= '2017-03' 
AND due_date < '2017-06' 
AND payment_status = 'not paid';