指定された値の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を含むレコードを取得するにはどうすればよいですか?