mysql自定义变量

#解释一下这个sql

SELECT @xi:=@xi+1 as xc from 
       (SELECT 1 UNION SELECT 2 UNION SELECT 3 ) xc1, 
       (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4) xc2,  
       (SELECT @xi:=0) xc0;

实际上级相当于 一个三条数据跟一个四条数据的笛卡尔乘积,SELECT 1 UNION SELECT 2 UNION SELECT 3表示123三个数,下边表示1234四个,然后查询笛卡尔乘积,总共数据的条数就是 3x4=12,然后申明变量从0开始,每条数据+1,也就是会出现12行数据,每一行都是对应的行数