所以我得到了一条 SQL 语句。这个想法是我想做一个不区分大小写的 LIKE。我这样做:
SELECT
FilenameId AS id,
LOWER(CONVERT(BINARY(Filename.Name) USING utf8)) AS name
FROM Filename
WHERE name LIKE '%something%'
COLLATE utf8_general_ci
这很好用,但是我的查询也返回大小写转换的名称。我想要做的是合成不敏感的名称并对其进行 LIKE 查询,但也返回非大小写转换的名称。
SELECT
FilenameId AS id,
Filename.Name AS name,
LOWER(CONVERT(BINARY(Filename.Name) USING utf8)) AS iname
FROM Filename
WHERE iname LIKE '%something%'
COLLATE utf8_general_ci
...但是 MySQL 很高兴地拒绝了:
Unknown column 'iname' in 'where clause'
我究竟做错了什么?我在 MySQL 5.5 FWIW 上。