Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 将函数输出转换为列名_Mysql - Fatal编程技术网

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'