视图中的MySQL错误#1351:查看的SELECT包含变量或参数

时间:2018-03-28 08:13:05

标签: mysql row-number

我正在尝试创建一个包含变量的视图,以便拥有一个具有唯一索引的列,以便在问题的最多投票答案中建议:ROW_NUMBER() in MySQL

解决方案在一个简单的选择中工作,但当我尝试在执行句子下面的视图中转换它时,我得到MySQL错误。

CREATE VIEW `new_view` AS
SELECT t.*, 
       @rownum := @rownum + 1 AS rank
  FROM YOUR_TABLE t, 
       (SELECT @rownum := 0) r

我的视图包含多个连接,但显示的数据可以在下面的寄存器中重新显示,可以看到一些寄存器重复,这是正确的:

 col1   col2   col3  
 '23', 'bla', 'bla'  
 '23', 'bla', 'bla'
 '67', 'fgh', 'qwe'
 '67', 'we4', 'cdf'
 '70', 'nhn', 'yui'

我想得到的是:

 rank col1   col2   col3  
 1    '23', 'bla', 'bla'  
 2    '23', 'bla', 'bla'
 3    '67', 'fgh', 'qwe'
 4    '67', 'we4', 'cdf'
 5    '70', 'nhn', 'yui'

作为获得以下结果的上一步:

 rank2 col1   col2   col3  
 1    '23', 'bla', 'bla'  
 2    '23', 'bla', 'bla'
 1    '67', 'fgh', 'qwe'
 2    '67', 'we4', 'cdf'
 1    '70', 'nhn', 'yui'

如果MySQL不允许在视图中使用变量,那么在视图中创建索引列的最佳方法是什么?

0 个答案:

没有答案