我有一个包含13列的表(ID,name,image,day1-10)。问题是:大多数时候我会有空列。我想知道如何才能使我的mysql查询只获得非空列,如果可能的话。
我的意思是,不会总是有day2-10有时只会设置day1而我只想从这一行得到这个值。可能吗?我尝试使用谷歌搜索,但没有找到任何有用的东西,我只能找到完全跳过整行的方法
我必须使用PHP从此查询中获取结果。
我尝试了不同的查询,但没有一个查询
答案 0 :(得分:1)
而不是
Table Main
ID | name | image | day1 | day2 | day3 ...
-------------------------------------------
1 | Foo | img1 | 7 | NULL | NULL
2 | Bar | img2 | 9 | 13 | 14
您应该将数据规范化为两个表格,如下所示:
Table Main
ID | name | image
------------------
1 | Foo | img1
2 | Bar | img2
Table Days
ID | MainID | Day
------------------
100 | 1 | 7
101 | 2 | 9
102 | 2 | 13
103 | 2 | 14
然后,您将使用JOIN选择适用于您感兴趣的主表格中任何一个元素的所有日期。
此处的另一个好处是,您不再受限于10天。