mysql - 别名问题

标签 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,但这与 mysql 在没有别名时创建的 '6' - `Amt` 不同。

有什么建议吗?

最佳答案

如果你真的真的很想在你的别名中使用`,你可以通过将它们加倍来“转义”它们,比如 `6 - ``Amnt```

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

关于mysql - 别名问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50178940/

相关文章:

mysql - 无法重启 Tomcat 盒式磁带

php - 限制 1 张照片从多张照片中显示 - Laravel 5.2

mysql - Sql - 查询花费很长时间

mysql - 数据库值中的单引号会破坏导入

mysql - 将 2 个不同的数据库复制到 1 个数据库

mysql - Laravel:在查询中使用 WHERE CONCAT

Mysql - 估计删除索引的时间

mysql - 删除存储在数据库 WooCommerce 中的优惠券

php - 搜索引擎只能单返回?

php - 根据函数获取mysql表列的值