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
总是 true
(Animal Type
是一个 well-defined 字符串,所以它不为空)。
和 'Animal Type' = 'dolphin'
将始终为假,因为 - 显然 - 这两个字符串是不同的。像上面那样使用反引号。
我的 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
总是 true
(Animal Type
是一个 well-defined 字符串,所以它不为空)。
和 'Animal Type' = 'dolphin'
将始终为假,因为 - 显然 - 这两个字符串是不同的。像上面那样使用反引号。