0

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

我有一个数据库,它有几个实际上是整数的 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 函数?

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

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

谢谢你

4

2 回答 2

1

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

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

在 Select 子句中使用 CAST 只会影响输出而不影响排序。

于 2012-06-01T22:28:46.187 回答
0

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

于 2012-06-01T22:18:29.250 回答