在MySQL5.7中,我有一个有28列和4000行的列。我想先获取所有有数据的行或者先获取有最多列数据的行,然后再逐渐获取其他行的数据。我该如何实现这个?
例如: 表:Student
| name | age | address |
|---|---|---|
| tan | 10 | |
| gib | 10 | california |
| hal | ||
| pur | 12 |
期望输出:'gib' 应该首先出现,然后是只有1列数据的 'tan' 或 'pur',最后是没有任何数据的 'hal'。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
假设
name列永远不会有空值,我们可以尝试:SELECT name, age, address FROM yourTable ORDER BY name, age IS NULL, -- 非空年龄优先 age, -- 按年龄升序排序 address IS NULL, -- 非空地址优先 address; -- 按地址升序排序