統(tǒng)計 - MYSQL版本問題導(dǎo)致SQL語法錯誤!unknow column ’SQLSTR’
問題描述
SQLSTR是別名,在MySQL5.7以上版本能通過,在5.0上提示unknow column ‘SQLSTR’錯誤,我不知道應(yīng)該怎么修改(因為客戶關(guān)系不能通過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就可以了,汗!
相關(guān)文章:
1. 如何解決Centos下Docker服務(wù)啟動無響應(yīng),且輸入docker命令無響應(yīng)?2. 我在centos容器里安裝docker,也就是在容器里安裝容器,報錯了?3. objective-c - IOS 分享到微信 提示 應(yīng)用消息數(shù)據(jù)錯誤4. android - 使用百度sdk調(diào)用SDKInitializer.initialize(this)時報錯?5. javascript - 微信h5發(fā)送圖文信息,部分設(shè)備點擊“發(fā)送”按鈕時沒反應(yīng),問題較難重現(xiàn),如何能找到可能存在問題的點?6. javascript - 音樂播放器-圖片旋轉(zhuǎn)7. android - 為 AppBarLayout 設(shè)置的背景圖片 TransitionDrawable 為什么只在第一次打開的時候有效?8. javascript - js中遞歸與for循環(huán)同時發(fā)生的時候,代碼的執(zhí)行順序是怎樣的?9. MySQL timestamp的默認值怎么設(shè)置?10. docker 17.03 怎么配置 registry mirror ?
