mysql视图添加行号排名
在mysql视图中,想要创建视图的同时,在sql查询语句中将原数据按照某一字段排序。
以我所遇到的情况为例,我想要查询视图中的数据,并将其按照市值(total_mv)降序排序。
以下是sql语句:
select @rownum:= @rownum+1 AS 市值排名,name,ts_code,total_mvfrom stock_all,(SELECT @rownum:=0) b order by total_mv DESC
如过只是查询,那么这样没什么问题,但如果是在创建视图的同时带这个查询,那么在mysql中就会报以下错误:
create or replace view stock_all1asselect @rownum:= @rownum+1 AS 市值排名,name,ts_code,total_mvfrom stock_all,(SELECT @rownum:=0) border by total_mv DESC
这是因为在mysql中,不允许创建视图的语句里有变量(带@)
我们可以通过自定义函数的方式,让返回值每次自加1,来取代变量
以数据库工具navicat为例,点击函数--》新建函数--》输入函数名,点击完成
然后输入以下代码,改代码有两个功能置零和自增1,这样写的原因可以参考这个博主的文章:mysql 视图 行号_MySQL踩坑记之视图添加行号_怡一的博客-CSDN博客
CREATE DEFINER=py_stock@% FUNCTION rank_total_mv(RESET BIT) RETURNS int NO SQL
BEGIN IF RESET THEN SET @rownum:= 0; ELSE SET @rownum:= IFNULL(@rownum,0)+1; END IF; RETURN @rownum;
END
点击保存会发现,提示以下错误:
原因是自定义函数需要相应权限,我们可以进入mysql的root用户下输入以下指令打开创建函数开关:
SET GLOBAL log_bin_trust_function_creators = 1;
如果是线上数据库,可以在下图所示地方开启:
在sql框中输入上面的指令,点至执行即可。
此时再回到navicat可以发现,函数已经可以创建:
然后我们将创建视图语句中的变量换为自定义的函数即可:
create or replace view stock_all1asselect rank_total_mv(0) AS 市值排名,name,ts_code,total_mvfrom stock_all,(SELECT rank_total_mv(1)) border by total_mv DESC
下面为视图结果显示:
参考文章:mysql 视图 行号_MySQL踩坑记之视图添加行号_怡一的博客-CSDN博客
mysql视图添加行号排名相关推荐
- 给ListView视图添加行号
最后的效果如下: 更新,集成一个独立的模块而不改变源文件的方式更为稳妥. 购买地址:https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-26531 ...
- MySQL给查询结果添加行号的方法及应用
1.给查询结果添加行号的方法 方法1: SET @rownum:=0; -- 注意:SQL语句中":="表示赋值,"="表示比较,"@"表示 ...
- MySQL给查询结果添加行号
给查询结果添加行号的方法 SET @rownum:=0; -- 注意:":="表示赋值,"="表示比较,"@"表示变量SELECT prov ...
- 1、MySQL视图是什么?
MySQL 视图(View)是一种虚拟存在的表,同真实表一样,视图也由列和行构成,但视图并不实际存在于数据库中.行和列的数据来自于定义视图的查询中所使用的表,并且还是在使用视图时动态生成的. 数据库中 ...
- mysql视图实现的_mysql视图是什么?怎么实现?
mysql视图是什么?怎么实现? 发布时间:2020-05-21 18:00:24 来源:亿速云 阅读:152 作者:鸽子 视图本身是一张虚拟表,不存放任何数据.在使用SQL语句访问视图的时候,获取的 ...
- mysql排序行号_mysql 取得行号后再排序
一.理论准备 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等. TreeMap:基于红黑树(Red-Black tre ...
- mysql 视图 数据相加_MySQL
查看安装路径 ps -ef|grep mysql 1,配置linux虚拟机,修改IP ????? vim /etc/sysconfig/network-scripts/ifcfg-eth0 2,配置完 ...
- mysql 视图 教程_MySQL视图简介及基本操作教程
前言 视图是数据库系统中一种非常有用的数据库对象.MySQL 5.0 之后的版本添加了对视图的支持. 认识视图 视图是一个虚拟表,其内容由查询定义.同真实表一样,视图包含一系列带有名称的列和行数据,但 ...
- word如何添加行号_如何将行号添加到Microsoft Word文档
word如何添加行号 Adding line numbers to a Microsoft Word document can help you point others to exact posit ...
最新文章
- Megengine量化
- AI时代,谈数据分析时我们要谈些什么?
- 软硬链接、文件删除原理、linux中的三种时间、chkconfig优化
- C# Task的使用
- Android手机使用命令行增加/删除/修改密码(password/pin/pattern)
- 【模拟】P1563 玩具谜题
- vba oracle 01019,Oracle 客户端连接时报ORA-01019错误总结
- Mac之当前目录打开终端
- CNN中的卷积操作与权值共享
- WebScoket 规范 + WebSocket 协议
- OpenShift 4 - 部署一个基于 Serverless 的 Banking 应用
- 喵哈哈村小学上课啦(欧拉函数)
- 【雷达】Tracking radar targets with multiple reflection points
- matlab安装matconvnet
- 场内场外交易成本_场内基金交易费用更低,但为什么我们都建议大家购买场外基金?...
- Python Turtle绘图基础(一)——Turtle简介、绘图窗体与绘图区域
- php不显示notice,解决PHP显示Warning和Notice等问题
- STM32日历读取,设置和输出
- android手机版本
- 大数据转型方案:首推数据湖!
热门文章
- 总结证书扩展和证书分类
- 巨人征途的成功 依赖于不处不在的海报
- 四类线性相位 FIR滤波器设计 —— MATLAB源码全集
- 大工17秋《计算机文化基础》在线测试1,大工15秋《计算机文化基础》在线测试1答案 满分!...
- PHP 下载压缩文件
- 练手项目一:手机安全卫士
- 北京理工大学计算机学院课多吗,北京理工大学计算机考研难不难?看看学长都有哪些说法...
- 传奇gm命令怎么用_全新强大的传奇GM后台命令脚本
- win7下android+Cocos2d-x 2.23 环境搭建
- 过期高权重有外链历史的老域名挖掘查询软件