0

我有一个 mysql_query:select * from table ORDER BY v1, v2 ASC

可以进行查询排序v1v2如下?

+---------------+-----------------------+------+-----+
| id            | name                  | v1   | v2  | 
+---------------+-----------------------+------+-----+
| 1             | a                     | 1    |  A  |
| 2             | a                     | 2    |  B  |
| 3             | a                     | 3    |  C  |
| 4             | a                     | 1    |  A  |
| 5             | a                     | 2    |  B  |
| 6             | a                     | 3    |  C  |
| 7             | a                     | 1    |  A  |
| 7             | a                     | 2    |  B  |
| 7             | a                     | 3    |  C  |
+---------------+-----------------------+------+-----+

SQL小提琴

4

2 回答 2

1

你可以试试这个:

Select id, name, v1, v2, (v1 + ASCII(v2)) as mySum
from table
order by mySum

ASCII http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_ascii

于 2012-12-15T00:42:13.223 回答
1

您需要另一列进行这样的排序。你必须告诉 MySQL 为什么 ids 1,2,3 在 4,5,6 之前。如果您有另一列,例如 1 表示 1、2、3,2 表示 4、5、6 等,您可以使用以下命令进行排序:

ORDER BY missing_col, v1, v2
于 2012-12-15T01:29:37.533 回答