MySQL查询的解决方案

MySQL查询的解决方案

问题描述:

我需要为我的项目解决方案..事实上,我陷入了一个问题..让我告诉你我的问题的图片。 Senerio of my problemMySQL查询的解决方案

如果你能看到,有一些12个月的列。所以我需要运行MySQL查询或程序,它可以显示包含文本“未付费”的选定列。

例如。

如果我想检查一月至三月或六月至十一月等成员谁是“未付”..所以这是什么解决方案......?

我知道我们可以使用“之间”子句,但我没有得到这个想法..因为我想使用两个下拉菜单,用户可以选择从哪个月到哪个月他们想看到的月份。

请帮我摆脱这个问题..我是一个新的PHP初学者。

+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';