CREATE FUNCTION `zrcrmdb`.`format_phone`(old_phone varchar(15))
    RETURNS varchar(15)
    BEGIN
DECLARE new_phone varchar(15)
IF LENGTH(old_phone)=8 THEN
SET new_phone=concat('025',old_phone)
ELSE
SET new_phone=old_phone
END IF
RETURN new_phone
    END错误如下:Error Code : 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF LENGTH(old_phone)=8 THEN
SET new_phone=concat('025',old_phone)
ELSE
SET ' at line 5Execution Time : 00:00:00:000
Transfer Time  : 00:00:00:000
Total Time     : 00:00:00:000请求帮助解决

解决方案 »

  1.   

    DELIMITER $$
    CREATE FUNCTION `zrcrmdb`.`format_phone`(old_phone VARCHAR(15))    RETURNS VARCHAR(15)
        BEGIN
            DECLARE new_phone VARCHAR(15);
                IF LENGTH(old_phone)=8 THEN 
                       SET new_phone=CONCAT('025',old_phone);
                           ELSE   
                                SET new_phone=old_phone ;
                                   END IF ;
                                      RETURN new_phone ;
                                         END$$
      

  2.   

    直接用SQL:
    SELECT IF(LENGTH(old_phone)=8,CONCAT('025',old_phone),old_phone) FROM 
      

  3.   

    楼上少了点东西DELIMITER $$
    CREATE FUNCTION `format_phone`(old_phone VARCHAR(15)) RETURNS VARCHAR(15)
      NO SQL
      DETERMINISTIC
      BEGIN
      DECLARE new_phone VARCHAR(15);
      IF LENGTH(old_phone)=8 THEN  
      SET new_phone=CONCAT('025',old_phone);
      ELSE   
      SET new_phone=old_phone ;
      END IF ;
      RETURN new_phone ;
      END $$