【发布时间】:2013-04-27 03:08:17
【问题描述】:
我想做这样的事情:
select data AS curdate() from table;
所以结果表看起来像:
2013-04-26
data 1
data 2
data 3
语法我看不懂,但一定有可能吧?
我试过不加任何引号,但会返回错误。单引号和反引号都返回 SQL 本身作为列标题。
【问题讨论】:
-
我怀疑这是可能的
标签: mysql
我想做这样的事情:
select data AS curdate() from table;
所以结果表看起来像:
2013-04-26
data 1
data 2
data 3
语法我看不懂,但一定有可能吧?
我试过不加任何引号,但会返回错误。单引号和反引号都返回 SQL 本身作为列标题。
【问题讨论】:
标签: mysql
这是一个不寻常的要求,但如果你坚持,你必须使用动态 sql。
SET @curdate = CURDATE();
SET @sql = CONCAT('SELECT whatever AS "', @curdate, '" FROM whatever');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
【讨论】:
SET @qry = CONCAT('SELECT uid AS ', @curdate, ' FROM users limit 10');) 的“2013-04-26 FROM users limit 10”附近使用正确的语法(SET @qry = CONCAT('SELECT uid AS ', @curdate, ' FROM users limit 10');)
",应该可以解决这个问题。
别名被视为标识符,如果不使用动态 SQL,则无法将其分配给函数。它会破坏引用,例如:
SELECT *
FROM (SELECT 1 AS curdate()) a
【讨论】: