统计 - MYSQL版本问题导致SQL语法错误!unknow column ’SQLSTR’
问题描述
SQLSTR是别名,在MySQL5.7以上版本能通过,在5.0上提示unknow column ‘SQLSTR’错误,我不知道应该怎么修改(因为客户关系不能通过mysql版本),请各位大神指点!
BEGIN DECLARE sTYPE VARCHAR(20); DROP TEMPORARY TABLE IF EXISTS temp_public_data; CREATE TEMPORARY TABLE temp_public_data SELECT DATE_FORMAT(FROM_UNIXTIME(n.inputtime),’%Y-%m-%d’) as days, DATE_FORMAT(FROM_UNIXTIME(n.inputtime),’%Y-%m’) as months, DATE_FORMAT(FROM_UNIXTIME(n.inputtime),’%Y’) as years, DATE_FORMAT(FROM_UNIXTIME(n.inputtime),’%u’) as weeks, count(n.id) as pubnum,n.username from v9_news as n WHERE DATE_FORMAT(FROM_UNIXTIME(n.inputtime),’%Y-%m-%d’) BETWEEN pDayBegin AND pDayEnd GROUP BY days,n.username; IF pType=1 THENSET sType = 'years'; ELSEIF pType=2 THENSET sType = 'months'; ELSEIF pType=3 THENSET sType = 'weeks'; ELSEIF pType=5 THENSET sType = 'days'; END IF;SET @EE = ''; SELECT @EE:= CONCAT(@EE,’,SUM(IF(username=’’,username,’’,pubnum,0)) AS ’’,username,’’’) AS **SQLSTR** FROM (SELECT DISTINCT username FROM temp_public_data) A ORDER BY **LENGTH(SQLSTR)** DESC LIMIT 0,1; SET @SQL = CONCAT(’SELECT IFNULL(’,sType,’,’TOTAL’) AS MONTH’); SET @SQL = CONCAT(@SQL,@EE); SET @SQL = CONCAT(@SQL,’,SUM(pubnum) as TOTAl ’); SET @SQL = CONCAT(@SQL,’ FROM temp_public_data’); SET @SQL = CONCAT(@SQL,’ GROUP BY ’,sType,’ WITH ROLLUP;’);#SELECT @SQL; PREPARE stmt FROM @SQL;EXECUTE stmt; DROP TEMPORARY TABLE IF EXISTS temp_public_data;END
问题解答
回答1:可以了,用SQLSTR后面into 一个变量,然后用这个变量来order就可以了,汗!
相关文章:
1. python - 关于beautifulsoup获取文档内容2. dockerfile - 为什么docker容器启动不了?3. debian - docker依赖的aufs-tools源码哪里可以找到啊?4. android - java tm platform se binary 占用很多内存5. mysql里的大表用mycat做水平拆分,是不是要先手动分好,再配置mycat6. mysql - 如何在数据库里优化 汉明距离 查询?7. node.js - ionic2 创建项目 ionic server 报这个错 有朋友可以帮忙看看吗!8. python flask做的文件系统上传系统,路径没错,文件列表加载不出来,error 100539. node.js - nodejs连接mysql,输入指令为什么10. python - 《flask web 开发》一书,数据库中多对多关系的实现问题?
