將資料庫表中所有欄位都有資料的行置於前位
P粉504080992
P粉504080992 2023-08-18 15:48:44
0
1
556
<p>在MySQL5.7中,我有一個有28列和4000行的欄位。我想先取得所有有資料的行或先取得有最多列資料的行,然後再逐漸取得其他行的資料。我該如何實現這個? </p> <p>例如: 表:Student</p> <table class="s-table"> <thead> <tr> <th style="text-align:center;">name</th> <th style="text-align:center;">age</th> <th style="text-align:center;">address</th> </tr> </thead> <tbody> <tr> <td style="text-align:center;">tan</td> <td style="text-align:center;">10</td> <td style="text-align:center;"></td> </tr> <tr> <td style="text-align:center;">gib</td> <td style="text-align:center;">10</td> <td style="text-align:center;">california</td> </tr> <tr> <td style="text-align:center;">hal</td> <td style="text-align:center;"></td> <td style="text-align:center;"></td> </tr> <tr> <td style="text-align:center;">pur</td> <td style="text-align:center;">12</td> <td style="text-align:center;"></td> </tr> </tbody> </table> <p>期望輸出:'gib' 應該先出現,然後是只有1列資料的 'tan' 或 'pur',最後沒有任何資料的 'hal'。 </p>
P粉504080992
P粉504080992

全部回覆(1)
P粉677573079

假設name列永遠不會有空值,我們可以嘗試:

SELECT name, age, address
FROM yourTable
ORDER BY
    name,
    age IS NULL,      -- 非空年龄优先
    age,              -- 按年龄升序排序
    address IS NULL,  -- 非空地址优先
    address;          -- 按地址升序排序
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板