DROP PROCEDURE IF EXISTS `proc_address`;
DELIMITER //
CREATE PROCEDURE proc_address(IN address VARCHAR(255),IN len int)
BEGIN
/*
此存储过程用于 查询地址附近的人员信息,查询表ecaseperson
参数 address :籍贯地址
参数 len : 地址长度
*/
DECLARE c1 int;
DECLARE c2 int;
DECLARE le int;
DECLARE tmp VARCHAR(255);
SET le=len;
SET tmp=address;
SELECT count(1) INTO c1 FROM test WHERE address LIKE CONCAT(address,"%");
SET c2=c1;
WHILE c2=c1 DO
SET le=le-3;
set tmp=SUBSTR(address,1,le);
SELECT count(1) INTO c2 FROM test WHERE =address LIKE CONCAT(tmp,"%");
END WHILE;
SELECT * FROM test WHERE address LIKE CONCAT(tmp,"%");
END//
DELIMITER;
/*使用 */
CALL proc_address('江苏南京市鼓楼区姜圩路111号888室',19);