例如:
select count(*) as (select date_sub(curdate(),interval 4 day))
from userinfo
where createTime > (select date_sub(curdate(),interval 4 day));
Run Code Online (Sandbox Code Playgroud)
这不起作用.它说'as'之后的语法不正确.我该如何工作?
我希望结果是这样的:
| |2016-01-14|
|-|----------|
|1| 1000 |
Run Code Online (Sandbox Code Playgroud)
使用普通的静态查询,你不能将列名定义为变量/子查询,但你可以使用动态 SQL(准备好的语句)来实现它:
\n\nSET @sql =\n CONCAT(\'select count(*) as `\',(select date_sub(curdate(),interval 4 day)),\'` from userinfo where createTime > (select date_sub(curdate(),interval 4 day));\');\n\nPREPARE stmt FROM @sql;\nEXECUTE stmt;\nDEALLOCATE PREPARE stmt;\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n输出:
\n\n\xe2\x95\x94\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x97\n\xe2\x95\x91 2016-01-14 \xe2\x95\x91\n\xe2\x95\xa0\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa3\n\xe2\x95\x91 2 \xe2\x95\x91\n\xe2\x95\x9a\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x9d\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
196 次 |
| 最近记录: |