-2
我有一個表,其中包含13列(ID,名稱,圖像,day1-10)。問題是:大多數時候我會有空列。我想知道如何才能讓我的MySQL查詢只會得到非空列,如果這是可能的。跳過空列
我的意思是,不會有永遠day2-10有時只有第1天將被置我只希望從這一行此值。可能嗎?我試着用搜索引擎,但沒有發現任何幫助,我只能想辦法跳過整個行共
我將不得不使用PHP來從該查詢結果。
我嘗試了不同的查詢,但沒有一次成功
我有一個表,其中包含13列(ID,名稱,圖像,day1-10)。問題是:大多數時候我會有空列。我想知道如何才能讓我的MySQL查詢只會得到非空列,如果這是可能的。跳過空列
我的意思是,不會有永遠day2-10有時只有第1天將被置我只希望從這一行此值。可能嗎?我試着用搜索引擎,但沒有發現任何幫助,我只能想辦法跳過整個行共
我將不得不使用PHP來從該查詢結果。
我嘗試了不同的查詢,但沒有一次成功
而不是
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來選擇適用於主表中您是int的任何元素的所有天數
這裏還有一個額外的好處是,你不再僅限於10天。
你是天才!非常感謝你。這解決了我所有的問題 – Lucas
NORMALIZE數據 – Strawberry
有什麼問題讓整行,只是用PHP解析您的結果?唯一可以跳過列的方法是在SELECT語句中聲明特定的列(而不是SELECT *)。但是,如果您有時在day1中有值,而其他時間day1爲null,那麼您將需要拉出所有這些行,然後使用PHP進行解析。 – Dan
一旦你從mysql獲得數據,你想怎麼做?不顯示空值的邏輯將在您的php代碼中,而不是在sql中。 –