select @id:=1,@id1:=0,* from ....

解决方案 »

  1.   

    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; 
      

  2.   

    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的,还有救么
      

  3.   

    mysql文档中有这样一句 在存储子程序内,定义不能引用子程序参数或局部变量。
      

  4.   

    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 换成使用全局变量,这个我也没把握。水平欠佳