我正在尝试创建一个包含变量的视图,以便拥有一个具有唯一索引的列,以便在问题的最多投票答案中建议: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不允许在视图中使用变量,那么在视图中创建索引列的最佳方法是什么?