想了解下MySQL, 找了本MySQL Cookbook正在看:
MySQL用户变量拥有单一的值,如果你使用返回多行的语句来将值赋给一个变量,那么只有最后一行的值被赋给了该变量,如果语句没有返回任何行,赋值也不会发生,变量会保持它先前的值,如果该变量之前从未被使用,那么值为NULL,而Oracle的PL/SQL中不允许返回多行或无返回值,否则丢出异常:TOO_MANY_ROWS or NO_DATA_FOUND,所以MySQL要特别留意出错.
MySQL: select @column_name := column_variable from tables where ...
Oracle: select column_name into column_variable from tables where ...
另外也可以充分利用MySQL的这一特性,如:
Select @n := @n + 1 as rownum from tables where …