MySQL语句如果number小于php变量

时间:2014-06-27 07:06:54

标签: php mysql

如果数字小于某个值,是否有可能使用MySQL语句来选择数字? 可以说我有一个php变量: myvar = 123;

我在数据库中有一些记录: 120 125 129 121

我想获取所有可能的数据库记录,其中myvar和记录差异小于5。 在这个例子中,需要120,125和121。 是否有可能做到这一点?如果是的话,也许有人可以帮我解决问题?

3 个答案:

答案 0 :(得分:3)

您可以使用mysql的BETWEEN运算符:

$query = "
SELECT * FROM `table` 
WHERE `record` BETWEEN {$myvar}-5 AND {$myvar}+5";

See mysql demo

注意: BETWEEN将匹配minmax之间的记录,包括 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

Check SQL Demo