select @r1:=if(@id1!=id,1,@r1+1) as rownum,@id1:=id,id,from (select @ri:=0,@id1:=0,test1.* from test1) tmp order by id;
CREATE VIEW `View_xy`AS select @r1=0,@id1=0,@r1:=if(@id1!=jtno,1,@r1+1) as rownum,@id1:=jtno,jtno,jtname,costno,null as xyno from bo_cm_jfbb union all select @r2=0,@id2=0,@r2:=if(@id2!=jtno,1,@r2+1) as rownum,@id2:=jtno,jtno,jtname,null,xyno from bo_cm_xybb 提示 [Err] 1351 - View's SELECT contains a variable or parameter mysql是5.0的,还有救么
mysql文档中有这样一句 在存储子程序内,定义不能引用子程序参数或局部变量。
MySQL 没有提供类似 MSSQL 的表值函数,也没有提供 ORACLE 的 内存表就是 select * from table(func()) ;不过,有以下几个方法可以解决你的问题: 1.使用 SP, 这个不用了说了,就是有些麻烦。 23. 先准备一个 表和一个函数 create table mytable( val varchar(20)) ; create function fn() returns varchar(30) begin declare x varchar(30) ; select val into x from mytable limit 0,1 ; return x ; end ; create view xxx as select * from t where col = fn() ;delete from mytable ; insert into mytable valus('YOUDATA') select * from xxx ; select * from 3. 把 fn 换成使用全局变量,这个我也没把握。水平欠佳
(select @ri:=0,@id1:=0,test1.* from
test1) tmp order by id;
VIEW `View_xy`AS
select @r1=0,@id1=0,@r1:=if(@id1!=jtno,1,@r1+1) as rownum,@id1:=jtno,jtno,jtname,costno,null as xyno from bo_cm_jfbb
union all
select @r2=0,@id2=0,@r2:=if(@id2!=jtno,1,@r2+1) as rownum,@id2:=jtno,jtno,jtname,null,xyno from bo_cm_xybb
提示
[Err] 1351 - View's SELECT contains a variable or parameter
mysql是5.0的,还有救么
1.使用 SP, 这个不用了说了,就是有些麻烦。
23.
先准备一个 表和一个函数
create table mytable( val varchar(20)) ; create function fn()
returns varchar(30)
begin
declare x varchar(30) ;
select val into x from mytable limit 0,1 ;
return x ;
end ; create view xxx as select * from t where col = fn() ;delete from mytable ;
insert into mytable valus('YOUDATA')
select * from xxx ; select * from
3. 把 fn 换成使用全局变量,这个我也没把握。水平欠佳