别名问题

时间:2018-05-04 15:59:38

标签: mysql

从其他东西生成sql查询字符串。我希望为每个选定的项目都有一个别名和ORDER B,主要是因为如果两个选择部分出现相同的别名,它们将被强制成结果中的唯一列名称,通过附加-1,-2等而不是多个具有相同名称的列。

简化查询:

SELECT '6' - `Amt`
FROM tbl

生成列名为'6'的结果 - “Amt”(按预期方式)。

但是,添加别名:

SELECT '6' - `Amt` AS '6' - `Amt`
FROM tbl

产生错误。

然而,ORDER BY中的格式相同:

SELECT '6' - `Amt`
FROM tbl
ORDER BY '6' - `Amt`

https://dev.mysql.com/doc/refman/5.7/en/problems-with-alias.html确实谈到了这一点。

我唯一能想到的就是将别名删回6 - Amt,但这与'6'不同 - 在没有别名时mysql创建的`Amt`。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

SELECT '6' - 'Amt' as `  '6' - ``Amt`` `

我不确定你想要实现的目标,但这可以通过在你的查询中乘以`来实现。

我不知道为什么你会这样做,因为这是不好的做法,我建议不要使用它,除非你必须这样做。

答案 1 :(得分:1)

如果你真的真的想要`在你的别名中,你可以"逃避"将它们加倍,就像`6 - ``Amnt```

......但我建议不要这样做,除非有非常充分的理由。