mysql print (寫儲存過程的時候輸出值只能用select)
阿新 • • 發佈:2019-02-08
用慣sqlserver的同學都知道sqlserver輸出可以直接用print,而mysql沒有這個函式
呼叫 : CALL usertest('id,username,usercode','test','usercode',1)
下面我用一個例子告訴大家用select怎麼達到這個效果
下面看我寫的一個儲存過程:
CREATE PROCEDURE usertest( fieldstr VARCHAR(200), tablename VARCHAR(200), orderstr VARCHAR(100), ordersort INT) BEGIN DECLARE sort VARCHAR(20); DECLARE tmpsql VARCHAR(500); SET sort = ''; IF ordersort=0 THEN SET sort='asc'; ELSE SET sort='desc'; END IF; SET @sqlcmd = CONCAT('select ' , fieldstr , ' from ' , tablename , ' order by ' , orderstr , ' ' , sort); PREPARE tmpsql FROM @sqlcmd; SELECT @sqlcmd;/*輸出執行的sql語句*/ EXECUTE tmpsql; DEALLOCATE PREPARE tmpsql; END$$ DELIMITER ;
呼叫 : CALL usertest('id,username,usercode','test','usercode',1)
這裡寫的是一個簡單的查詢儲存過程,用到了動態語句查詢。執行結果我就不發出來了。