mysql - 有没有办法按列值对结果进行排序?

标签 mysql sql

我有一个包含很多列的 MySQL 表。

id|Date      |col1|col2|col3|col4|col5|...                |col500|
-----------------------------------------------------------------
 1|01.10.2019| 152|  99|   0|1598|  48|  filled with zeros|     1|
-----------------------------------------------------------------
 2|02.10.2019|  12| 344|  19|2544|   3|  filled with zeros|   152|
-----------------------------------------------------------------
....

是否可以订购列

SELECT * FROM table WHERE Date = '02.10.2019' ORDER BY COLUMNS

得到这样的结果

id|Date       |col4|col2|col500|col3|col1|col5|...              |
-----------------------------------------------------------------
 2|02.10.2019 |2544| 344|   152|  19|  12|   3|filled with zeros

最佳答案

如果您想按列值排序,正如 Madhur Bhaiya 和 P.Salmon 所说,可能是您的表格设计不正确,并且您可能正在谈论,而不是>列。 也许您需要这样的表格,而不是包含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 值的记录。这取决于该表的目标是什么。

关于mysql - 有没有办法按列值对结果进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58214541/

相关文章:

MySQL 列搜索逗号分隔的项目 - FIND_IN_SET 或 LIKE

sql - MySQL 错误 : ON DUPLICATE KEY UPDATE, 列计数与行的值计数不匹配

php-mysql 如何递增二进制 UUID 主键并获取插入的 id

MySQL 无法添加或更新子行 - 外键约束失败

mysql - SQL查询根据特定条件显示唯一记录

Mysql:按月搜索数据只能产生一个结果,而不是全部结果

mysql - 加入帖子详情以喜欢查询

php - CKEditor 图像无法正常工作

Java 不运行带有参数的准备语句

MySQL - 一张表中的多个外键