統計 - 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. javascript - js setTimeout在雙重for循環中如何使用?2. 求救一下,用新版的phpstudy,數據庫過段時間會消失是什么情況?3. python沒入門,請教一個問題4. javascript - 我的站點貌似被別人克隆了, google 搜索特定文章,除了域名不一樣,其他的都一樣,如何解決?5. html - 爬蟲時出現“DNS lookup failed”,打開網頁卻沒問題,這是什么情況?6. 小程序怎么加外鏈,語句怎么寫!求救新手,開文檔沒發現7. php如何獲取訪問者路由器的mac地址8. javascript - 在 vue里面用import引入js文件,結果為undefined9. html5 - input type=’file’ 上傳獲取的fileList對象怎么存儲于瀏覽器?10. java 線程監控 重啟線程 觀察者模式的問題的問題
