用惯sqlserver的同学都知道sqlserver输出可以直接用print,而mysql没有这个函数
下面我用一个例子告诉大家用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)
这里写的是一个简单的查询存储过程,用到了动态语句查询。执行结果我就不发出来了。