Mysql 类似excel的SQL多排序数据库
首先,我使用的是MYSQL 我的数据库有三个表:行、列和单元格。行仅包含id、列id和名称,但单元格至关重要。看起来是这样的:Mysql 类似excel的SQL多排序数据库,mysql,sql,sorting,Mysql,Sql,Sorting,首先,我使用的是MYSQL 我的数据库有三个表:行、列和单元格。行仅包含id、列id和名称,但单元格至关重要。看起来是这样的: id | rowId | columnId | value1 | value2 | value3 | value4 | value5 | -------------------------------------------------------------------- 1 | 1 | 1 | v1 | v2 | v3
id | rowId | columnId | value1 | value2 | value3 | value4 | value5 |
--------------------------------------------------------------------
1 | 1 | 1 | v1 | v2 | v3 | v4 | v5 |
--------------------------------------------------------------------
2 | 1 | 2 | v5 | v6 | v7 | v8 | v9 |
--------------------------------------------------------------------
3 | 2 | 1 | v10 | v12 | v13 | v14 | v15 |
--------------------------------------------------------------------
4 | 2 | 2 | v1 | v2 | v3 | v4 | v5 |
--------------------------------------------------------------------
5 | 3 | 1 | v5 | v6 | v7 | v8 | v9 |
--------------------------------------------------------------------
6 | 3 | 2 | v10 | v12 | v13 | v14 | v15 |
--------------------------------------------------------------------
它表示包含6个单元格(2列3行)的表,每个单元格包含5个值。
我想做的是获取由多个包含特定值的表排序的行ID列表
示例排序:
value1=v10,columndId=1,
值4=v8,列DID=2,
以任何顺序休息
输出:
id | rowId | columnId | value1 | value2 | value3 | value4 | value5 |
--------------------------------------------------------------------
3 | 2 | 1 | v10 | v12 | v13 | v14 | v15 |
2 | 1 | 2 | v5 | v6 | v7 | v8 | v9 |
6 | 3 | 2 | v10 | v12 | v13 | v14 | v15 |
所以右行的顺序是2->1->3
我得到的是这个SQL查询:
SELECT rowId FROM cells WHERE
columnId = 1 OR
columnId = 2 OR
ORDER BY value1 = v10, value4 = v8;
但它给了我这个输出:
id | rowId | columnId | value1 | value2 | value3 | value4 | value5 |
--------------------------------------------------------------------
3 | 2 | 1 | v10 | v12 | v13 | v14 | v15 |
6 | 3 | 2 | v10 | v12 | v13 | v14 | v15 |
2 | 1 | 2 | v5 | v6 | v7 | v8 | v9 |
5 | 3 | 1 | v5 | v6 | v7 | v8 | v9 |
1 | 1 | 1 | v1 | v2 | v3 | v4 | v5 |
4 | 2 | 2 | v1 | v2 | v3 | v4 | v5 |
你有没有关于如何处理这种排序的IDE?嘿,你可以通过 所以 这将按照响应您的案例陈述的数值排序,因此您可以创造性地排序您想要的任何东西
order by case when value1=v10 then 1
when value14=v8 then 2
when something=v2 then 3
end