0

如何从给定值的mysql数据库表中找到最接近的值,我想做的是:

CASE1:如果我将输入 2500 输入到 pincode,那么我正在从数据库中检索与该 pincode 值对应的记录。

CASE2:如果输入的 pincode(2500) 记录没有退出,我必须得到最接近的值 2500 及其相应的记录。

我目前正在调用CASE1 sp_findlocation('XXXXXXXX','2500',@addresss) 的存储过程

DELIMITER $$
USE `test`$$
DROP PROCEDURE IF EXISTS `sp_findlocation`$$
CREATE PROCEDURE `sp_findlocation`(IN mobile VARCHAR(20),IN pincode VARCHAR(20),OUT address VARCHAR(100))
BEGIN   
    IF(pincode IS NOT NULL AND pincode!= '') THEN
        SET @c1 = '';
        SET @c2 = '';
        SET @c3 = '';
        SET @qry='select locality,store_name,contact_number INTO @c1,@c2,@c3 from test_upload where pin=? limit 1';
        PREPARE stmt FROM @qry;
        SET @c = pincode;
        EXECUTE stmt USING @c;
        DEALLOCATE PREPARE stmt;
        IF(@c1!='' || @c2!=''||@c3!='') THEN    
            SET address= CONCAT(@c1, '|',@c2,'|',@c3);      
        ELSE
            SET address= "No Result";
        END IF; 
    ELSE    
        SET address="Please enter valid pin code";
    END IF; 
END$$
DELIMITER ;

我将如何获取包括CASE2在内的记录?

4

0 回答 0