MySQL查询的解决方案
问题描述:
我需要为我的项目解决方案..事实上,我陷入了一个问题..让我告诉你我的问题的图片。 Senerio of my problemMySQL查询的解决方案
如果你能看到,有一些12个月的列。所以我需要运行MySQL查询或程序,它可以显示包含文本“未付费”的选定列。
例如。
如果我想检查一月至三月或六月至十一月等成员谁是“未付”..所以这是什么解决方案......?
我知道我们可以使用“之间”子句,但我没有得到这个想法..因为我想使用两个下拉菜单,用户可以选择从哪个月到哪个月他们想看到的月份。
请帮我摆脱这个问题..我是一个新的PHP初学者。
答
如果我是你,我会将月份表示为日期,即使字符串(例如,'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';
分享你的模式 –