如果数字小于某个值,是否有可能使用MySQL语句来选择数字? 可以说我有一个php变量: myvar = 123;
我在数据库中有一些记录: 120 125 129 121
我想获取所有可能的数据库记录,其中myvar和记录差异小于5。 在这个例子中,需要120,125和121。 是否有可能做到这一点?如果是的话,也许有人可以帮我解决问题?
答案 0 :(得分:3)
您可以使用mysql的BETWEEN运算符:
$query = "
SELECT * FROM `table`
WHERE `record` BETWEEN {$myvar}-5 AND {$myvar}+5";
注意: BETWEEN
将匹配min
和max
之间的记录,包括 min
和{{1 }}。在为应用程序开发逻辑时请记住这一点。
答案 1 :(得分:1)
SELECT * FROM `table_name`
WHERE `field_name` BETWEEN (123-4) AND (123+4)
In generalized form as below.
$myvar = 123;
$difference = 5;
$sql = "SELECT * FROM `table_name`
WHERE `field_name` BETWEEN ($myvar - $difference +1) AND ($myvar + $difference -1)";
说明: - >如上所述,差异应小于5。不等于或等于5。
让我们说所需的n是x。
123-x< 5 => 118< x => 119,120,121,122,123 x-123> 5 => x> 128 => 127,126,125,124,123
因此x可以是119到127。
=>(123-5)+1< x< (123 + 5)-1
希望这个解释澄清我上面写的sql。
评论是否无法解决您的问题。
答案 2 :(得分:0)
试试这个
SELECT *
FROM `table_name`
WHERE `field` <= your_variable+5
AND `field` >= your_variable-5