MySQL 更改视图中 GROUP BY 列的名称 Return 结果不正确

MySQL Changing the Name of GROUP BY Column in a View Doesn't Return Results Properly

我的 MySQL 数据库中的视图有问题。当我 select 视图和 运行 上的 WHERE 子句时,我只能使用列的直接名称,不能使用 AS 将其更改为其他名称 - 否则内容不会显示右:

CREATE OR REPLACE
ALGORITHM = UNDEFINED VIEW `View_Donations` AS
select
    concat('$', sum(`donators_animal_linking`.`donation_amount`)) AS 
    `Donation Total`,
    `donators_animal_linking`.`animal_type` AS `animal_type`
from
    `donators_animal_linking`
group by
    `donators_animal_linking`.`animal_type`

SELECT * FROM View_Donations
WHERE 'Animal Type' IS NOT NULL;

即使将 WHERE 子句设置为 IS NOT NULL,仍会显示空数据。当它设置为 'Animal Type' === 'dolphin' 之类的内容时,则不会显示任何内容。我可以更改列名称,还是应该保留它?

'Animal Type' 中的引号类型有误。引擎认为它是一个字符串,而不是列的名称。

这就是为什么 IS NOT NULL 总是 trueAnimal Type 是一个 well-defined 字符串,所以它不为空)。

'Animal Type' = 'dolphin' 将始终为假,因为 - 显然 - 这两个字符串是不同的。像上面那样使用反引号。