mysql - 有没有办法按列值排序结果?
问题描述
我有许多列的 MySQL 表。
id|日期 |col1|col2|col3|col4|col5|... |col500| -------------------------------------------------- --------------- 1|01.10.2019| 152| 99| 0|1598| 48| 用零填充| 1| -------------------------------------------------- --------------- 2|02.10.2019| 12| 344| 19|2544| 3| 用零填充| 152| -------------------------------------------------- --------------- ……
是否可以订购列
SELECT * FROM table WHERE Date = '02.10.2019' ORDER BY COLUMNS
并得到这样的结果
id|日期|col4|col2|col500|col3|col1|col5|...| -------------------------------------------------- --------------- 2|02.10.2019 |2544| 344| 152| 19| 12| 3|用零填充
解决方案
如果您想按列值排序,正如 Madhur Bhaiya 和 P.Salmon 所说,可能是您的表格设计不正确,您可能在说rows,而不是columns。ID/ Date/ col1/ col2/ ... / col500
您可能需要这样的表格,而不是带有列的表格
CREATE TABLE tbl(
pk integer not null primary key default autoincrement,
id integer not null,
dt date not null,
xxx_id integer,
value integer);
其中 XXX_ID 代表旧表中的列位置(可能是单个记录的标识符,我不知道您使用此表做什么)。
现在您必须插入值:
INSERT INTO tbl (id, date, value) VALUES (1, '2019-10-01', 152);
INSERT INTO tbl (id, date, value) VALUES (1, '2019-10-01', 99);
INSERT INTO tbl (id, date, value) VALUES (1, '2019-10-01', 0);
INSERT INTO tbl (id, date, value) VALUES (1, '2019-10-01', 1592);
INSERT INTO tbl (id, date, value) VALUES (1, '2019-10-01', 48);
....
INSERT INTO tbl (id, date, value) VALUES (2, '2019-10-02', 12);
INSERT INTO tbl (id, date, value) VALUES (2, '2019-10-02', 344);
INSERT INTO tbl (id, date, value) VALUES (2, '2019-10-02', 19);
INSERT INTO tbl (id, date, value) VALUES (2, '2019-10-02', 2544);
...
你的问题的答案变得非常容易,比如
select * from tbl
where id = 1 AND date = '2019-10-01'
order by value
最后一点:您可以决定插入具有零值的记录,或者跳过它们,或者插入它们的NULL
值。这取决于表的目标是什么。
推荐阅读
- android - 通过 YoutubeDataApi 将我的私人 youtube 视频分享给我的应用程序用户。或将我的私人 Youtube 视频添加到 Android 应用程序
- ios - 如何将可选项解包到变量中,然后在 while 循环的下一次迭代中使用该变量?
- python - 如何从 Flask Rest API 在后台运行长时间运行的 python 脚本?
- http - 如何将所有传入的http请求重定向到nginx配置文件中的特定url?
- php - AWS S3 PHP 客户端 ListParts 返回 null
- android - 自动登录,按预期自动登录,但从数据库获取信息时应用程序崩溃
- javascript - 如何将所有属性双引号更改为单引号?
- python - 在 ubuntu 中运行第一个 cgi-python,对于一个 hello world 程序,它返回“404 错误
- junit - 当我创建如下对象时如何模拟
- python-3.x - 如何清除打印行并将其替换为更新的变量 IDLE