在具有多个SELECT或ORDER BY变量的SELECT查询(或ORDER BY)中使用MySql CAST函数

时间:2012-06-01 22:13:39

标签: mysql

我的问题是缺少逗号。当我把头撞到桌子上时,随意删除这篇文章

我有一个数据库,它有几个实际上是整数的VARCHAR列,但由于某些原因,列需要是VARCHAR而不是INT。显然我的数字排序问题

7
8
9
10

排序为

10
7
8
9

我的SELECT语句使用多个连接和SELECT变量:

SELECT master.column1, table2.column1, table2.column2, table3.column1 FROM master
LEFT JOIN table2
ON master.column1 = table2.column1
WHERE master.column1 LIKE 'whatever'
OR WHERE master.column2 LIKE 'whatever'
ORDER BY master.column1, master.column2, master.column3....

有没有办法在其中一个变量上插入CAST函数?

SELECT master.column1, CAST(table2.column1 AS UNSIGNED), table2.column2....

我没有成功尝试如上,并且MySql手册没有给出具有多个SELECT或ORDER BY变量的示例。

谢谢

2 个答案:

答案 0 :(得分:1)

您可能希望在ORDER BY子句中使用CAST。

选择... ORDER BY master.column1,cast(master.column2 as varchar),master.column3 ....

在Select Clause中使用CAST只影响输出而不是排序。

答案 1 :(得分:0)

CAST方法在order by子句中是否可用?我不懂,它应该可以正常工作。