Mysql 将函数输出转换为列名
我遇到了一个场景,需要将函数的输出“强制转换”为要选择的列名:Mysql 将函数输出转换为列名,mysql,Mysql,我遇到了一个场景,需要将函数的输出“强制转换”为要选择的列名: (SELECT LOWER(DATE_FORMAT(NOW(), '%b')) FROM lang_months WHERE langRef = lang_statements.langRef ) AS month 只返回预期的当前月份,但我希望在本例中选择名为“may”的列 我该怎么做 谢谢,你的回答给了我一个想法。我只是将当前日期放入一个变量中,并在查询中使用它,如下所示: $thisMonth=strtolower(日期(
(SELECT
LOWER(DATE_FORMAT(NOW(), '%b'))
FROM lang_months
WHERE langRef = lang_statements.langRef
) AS month
只返回预期的当前月份,但我希望在本例中选择名为“may”的列
我该怎么做
谢谢,你的回答给了我一个想法。我只是将当前日期放入一个变量中,并在查询中使用它,如下所示: $thisMonth=strtolower(日期('M'))
我认为这是不可能的
您可以创建一个视图,在您的数据上提供此视图,这样您就可以让他们更直观地查询数据,但您仍然需要手工编写这12个子查询和别名。这是不可能的。当查询到达MySQL时,必须知道实体的名称 最简单的选择可能是确定您使用的任何语言的列名,然后仅使用该语言。例如,在PHP中:
$col = 'someAlias';
$query = "SELECT blah as `{$col}` FROM tbl";
这应该起作用:
$month = LOWER(DATE_FORMAT(NOW(), '%b')); // Results in 'may'
$result = mysql_query('SELECT * FROM $month'); // Returns all records in table 'may'
看看MySQL的pivot查询。哦,我的回答太晚了:)
$month = LOWER(DATE_FORMAT(NOW(), '%b')); // Results in 'may'
$result = mysql_query('SELECT * FROM $month'); // Returns all records in table 'may'