想了解下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 …
本文对比了MySQL与Oracle中用户变量的处理方式,指出MySQL用户变量在使用返回多行的语句赋值时的特点,并展示了如何利用这些特性进行操作。

被折叠的 条评论
为什么被折叠?



