Tuesday, 15 May 2012

mysql - SQL multi-sorting database similar to excel -



mysql - SQL multi-sorting database similar to excel -

first of i'm using mysql.

my database has 3 tables: rows, columns, cells. rows contains id, columns id , name cells crucial. looks this:

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 | --------------------------------------------------------------------

it represents table 6 cells (2 columns , 3 rows) each contains 5 values. list of rows ids sorted multiple tables containing values.

example sort: value1=v10 , columndid=1, value4=v8 , columndid=2, , rest in order

output:

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 |

so right rows order 2 -> 1 -> 3

what got sql query:

select rowid cells columnid = 1 or columnid = 2 or order value1 = v10, value4 = v8;

but gives me output:

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 |

do have ides how handle kind of sorting?

hey can case order

so

order case when value1=v10 1 when value14=v8 2 when something=v2 3 end

this order number values cooresponding case statements, can creatively order want

mysql sql sorting

No comments:

Post a Comment