在sql中.我们可以使用
if(boolean ,A,B)格式对语句进行判断筛选
比如:
update tablename set fieldName = if(fieldName > 20, 20 , fieldName ) ;
将fieldName 中大于20的数削至20,但是这个语句在存储过程中.没有办法编译, 请问有谁知道怎么回事吗?存储过程MySQL
if(boolean ,A,B)格式对语句进行判断筛选
比如:
update tablename set fieldName = if(fieldName > 20, 20 , fieldName ) ;
将fieldName 中大于20的数削至20,但是这个语句在存储过程中.没有办法编译, 请问有谁知道怎么回事吗?存储过程MySQL
mysql> create procedure sp_test()
-> begin
-> update test4 set a=if(a>20,20,a);
-> end
-> $
Query OK, 0 rows affected (0.02 sec)
mysql> delimiter //
create procedure clean_data_everyday(
in_uid int(10),
in_full_energy int(10)
)
begin
update wj_player set energy = if(energy > in_full_energy,in_full_energy,energy) where uid = in_uid;
end
//
delimiter ;
-> 按回车后.没有提示成功!
使用的工具 navicat在linux下.执行成功.