0

指定された値のmysqlデータベーステーブルから最も近い値を見つける方法、私がやりたいことは次のとおりです。

ケース 1 :入力 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