请将下面文本按照MySQL存储过程的形式重写:

有一个数出现次数超过数组长度的二分之一，请找出这个数。

例子:

输入: [3,2,3] -> 输出: 3

输入: [2,2,1,1,1,2,2] -> 输出: 2
user
以下是按照MySQL存储过程的形式重写后的文本：

```sql
DELIMITER //

CREATE PROCEDURE FindMajorityElement(IN nums VARCHAR(255), OUT majority_element INT)
BEGIN
    DECLARE n INT DEFAULT 0;
    DECLARE i INT DEFAULT 0;
    DECLARE count INT DEFAULT 0;
    DECLARE candidate INT DEFAULT 0;
    DECLARE current_num INT DEFAULT 0;
    DECLARE num_array INT(11);
    
    -- 将输入字符串转换为数组
    SET num_array = CAST.purchase_list_to_array(nums, ',');
    
    -- 获取数组长度
    SET n = JSON_LENGTH(num_array);
    
    -- 第一步：找出候选元素
    SET i = 0;
    WHILE i < n DO
        SET current_num = JSON_EXTRACT(num_array, CONCAT('$[', i, ']'));
        IF i = 0 THEN
            SET candidate = current_num;
            SET count = 1;
        ELSE
            IF current_num = candidate THEN
                SET count = count + 1;
            ELSE
                SET count = count - 1;
                IF count = 0 THEN
                    SET candidate = current_num;
                    SET count = 1;
                END IF;
            END IF;
        END IF;
        SET i = i + 1;
    END WHILE;
    
    -- 第二步：验证候选元素是否为众数
    SET count = 0;
    SET i = 0;
    WHILE i < n DO
        SET current_num = JSON_EXTRACT(num_array, CONCAT('$[', i, ']'));
        IF current_num = candidate THEN
            SET count = count + 1;
        END IF;
        SET i = i + 1;
    END WHILE;
    
    IF count > n / 2 THEN
        SET majority_element = candidate;
    ELSE
        SET majority_element = NULL;
    END IF;
END //

DELIMITER ;

-- 调用示例
CALL FindMajorityElement('[3,2,3]', @result);
SELECT @result;

CALL FindMajorityElement('[2,2,1,1,1,2,2]', @result);
SELECT @result;
```

请注意，这段存储过程假设输入是一个逗号分隔的数字字符串。在实际使用时，可能需要根据具体的输入格式和数据库版本进行适当调整。
assistant