2022-10-27 353
MySQL查询行号的实现方法不止一种,下面为您介绍的就是使用函数实现MySQL查询行号的方法,如果您对此方面感兴趣的话,不妨一看。
mysql5中使用函数实现MySQL查询行号,原理和使用变量差不多 。
下面MySQL查询行号过程的目的是获得整型包含行的数量的结果集,类似其他DBMS中的ROWNUM()。我们需要一个用户变量来保存在每次调用rno()后的结果,就命名为@rno吧。
CREATEFUNCTIONrno() RETURNSINT BEGIN SET@rno=@rno+1; RETURN@rno; END;
通过rno()方法的SELECT我们获得了行数。下面是调用程序的结果:
mysql>SET@rno=0;// QueryOK,0rowsaffected(0.00sec) mysql>SELECTrno(),s1,s2FROMt;// +-------+------+------+ |rno()|s1|s2| +-------+------+------+ |1|1|a| |2|2|b| |3|3|c| |4|4|d| |5|5|e| +-------+------+------+ 5rowsinset(0.00sec)
在SELECT中将@rno置零的技巧是使用了WHERE的求值功能,而这个特性在今后的MySQL中可能丢失。
CREATEFUNCTIONrno_reset() RETURNSINTEGER BEGIN SET@rno=0; RETURN1; END; SELECTrno(),s1,s2FROMtWHERErno_reset()=1;//
实例如下:
mysql>usedb5 Databasechanged mysql>delimiter// mysql>CREATEFUNCTIONrno() ->RETURNSINT ->BEGIN ->SET@rno=@rno+1; ->RETURN@rno; ->END;// QueryOK,0rowsaffected(0.42sec) mysql>set@rno=0; ->// QueryOK,0rowsaffected(0.00sec) mysql>selectrno(),s1fromt;// +-------+------+ |rno()|s1| +-------+------+ |1|6| |2|6| |3|0| |4|19| |5|19| |6|1| |7|2| |8|3| |9|4| |10|0| |11|1| |12|2| |13|4| +-------+------+ 13rowsinset(0.06sec) mysql>CREATEFUNCTIONrno_reset() ->RETURNSINTEGER ->BEGIN ->SET@rno=0; ->RETURN1; ->END;// QueryOK,0rowsaffected(0.01sec) mysql>selectrno(),s1fromtwhererno_reset()=1;// +-------+------+ |rno()|s1| +-------+------+ |1|6| |2|6| |3|0| |4|19| |5|19| |6|1| |7|2| |8|3| |9|4| |10|0| |11|1| |12|2| |13|4| +-------+------+ 13rowsinset(0.13sec)
原文链接:https://77isp.com/post/4439.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态