zoukankan      html  css  js  c++  java
  • mysql为select结果集添加序号列

    两个函数简单搞定

    DELIMITER $$
    
    USE `oso_isp`$$
    
    DROP FUNCTION IF EXISTS `rownum_reset`$$
    
    CREATE FUNCTION `rownum_reset`() RETURNS INT(11)
    BEGIN
    	SET @rno = 0;   
    	RETURN 1; 
    END$$
    
    DELIMITER ;
    

      

    DELIMITER $$
    
    USE `oso_isp`$$
    
    DROP FUNCTION IF EXISTS `rownum`$$
    
    CREATE  FUNCTION `rownum`() RETURNS INT(11)
    BEGIN
    	/* 用法如: 
     		SELECT 
    		`rownum`(
    		)      AS `id`,
    		t.*
    		FROM TABLE t
    		WHERE rownum_reset() = 1
    	*/
    	
    	SET @rno = @rno + 1;   
    	RETURN @rno;  
        
        
    END$$
    
    DELIMITER ;
    

      

    查询结果测试

    测试代码:

    SELECT
      `rownum`(
    )			AS `row_num`
      ,`a`.`stock_in_date` 	AS `stock_in_date`
      ,`a`.`dinner_type`   	AS `dinner_type`
      ,`a`.`stockroom_id`  	AS `stockroom_id`
      ,SUM(`a`.`dinner_num`)
    			AS `dinner_num`
      ,SUM((SELECT SUM(`wh_stock_in_order_item`.`total_price`) FROM `wh_stock_in_order_item` WHERE (`wh_stock_in_order_item`.`stock_in_order_id` = `a`.`id`))) 
    			AS `total_price`
      ,COUNT(0)            	
    			AS `order_num`
      ,GROUP_CONCAT(DISTINCT (SELECT `staff`.`name` FROM `staff` WHERE (`staff`.`id` = `a`.`buyer_id`)) SEPARATOR ',') -- 行变列
    			AS `buyer_name`
    FROM `wh_stock_in_order` `a`
    WHERE ((`a`.`is_deleted` = 0)
           AND (`a`.`status` = 1)
           AND (`rownum_reset`() = 1)) -- 初始化序号列从1开始
    GROUP BY `a`.`stock_in_date`,`a`.`dinner_type`,`a`.`stockroom_id`
    ORDER BY `a`.`stock_in_date`,`a`.`dinner_type`
    

      

    返回结果:

      
                                                                                                        

    未来拿不出手,过去会有谁听。

    作者:aLong

    出处:http://www.cnblogs.com/keerdi/

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    3dsmaxunity3d
    libav android移植交叉编译
    libav 由显卡中读取数据制作视频
    超详细mysql left join,right join,inner join用法分析
    VC常见入门问题总结
    c#皮肤美化
    论坛
    vc中文件的读写操作
    MySQL的mysqldump工具的基本用法
    perl产生随机数
  • 原文地址:https://www.cnblogs.com/tooy/p/7281896.html
Copyright © 2011-2022 走看看