正在从其他内容生成 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,但这与 mysql 在没有别名时创建的 '6' - `Amt` 不同。
有什么建议吗?
最佳答案
如果你真的真的很想在你的别名中使用`,你可以通过将它们加倍来“转义”它们,比如 `6 - ``Amnt```
...但我不建议这样做,除非有非常非常好的理由。
关于mysql - 别名问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50178940/