REATE DEFINER=`root`@`localhost` PROCEDURE `pro_UpdateUserInfor`(in _UserID int, /*用户ID*/ in _userExp VARCHAR(100), /*引以为豪的职业经历*/
in _userEva VARCHAR(100), /*自我评价*/
in _userAddress VARCHAR(50) /*地址*/
BEGINDECLARE real_num int; /*受影响的行数*/
DECLARE real_sql VARCHAR(500);/*lk_users_real 表更改语句 变量*/
DECLARE real_length int;
DECLARE real_swicth int;
SET real_sql="UPDATE lk_users_real SET ";/*lk_users_real 表更改语句*/
SET real_length = LENGTH(real_sql);
IF _userAddress!="" THEN
SET real_sql= CONCAT(real_sql," userAddress='",_userAddress,"',");
END IF;
IF _userZipCode!="" THEN
SET real_sql= CONCAT(real_sql," userZipCode='",_userZipCode,"',");
END IF;IF LENGTH(optional_sql)>optional_length THEN
SET optional_sql= LEFT(optional_sql,LENGTH(optional_sql)-1);/*删除最后一个 逗号*/
SET optional_sql= CONCAT(optional_sql," WHERE UserID=",_UserID);
SET @sql1 = optional_sql;
Select optional_sql; /*查询出来 最后回加一个逗号, 数字或 英文字母 没有 如果是中文就会有。*/
END IF;
我想知道它为啥是汉字 就自动给我加个 逗号。 我给一个参数 如果是 a
执行 SET real_sql= CONCAT(real_sql," userZipCode='",_userZipCode,"',");
拼接好就是 userZipCode='a', 后面我有个删除逗号的一个操作。
如果是汉字的话 这个逗号也删走了。 但是它会给我加上一个。 why????
show variables like 'char%';
MySQL 中文显示乱码
贴结果