首页 > 解决方案 > 在 mysql 中获取详细信息时遇到问题

问题描述

这是我的表格,其中包含税务详细信息:

表中记录的图像

在此处输入图像描述

start_range_cost当我在和之间有一个整数(比如 2500)时,我想获取税务记录的详细信息end_range_cost

我当前的 SQL 以 3000 为例:

SELECT * FROM `hotel_tax_details` 
 WHERE `start_range_cost`>=3000 AND `end_range_cost`<=3000

标签: phpmysql

解决方案


仅基于您的 OP 中的查询和图像中的记录,不会返回任何内容。start_range_cost仅当两个ANDend_range_cost都与任何记录都不匹配时,它才会返回3000,但这只是因为您已经翻转了<and标志。>尝试使用BETWEEN,如果您在比较中包含上限和下限,我觉得它不太容易出现比较错误。

假设:

  • 2500是从您的示例中搜索的范围内的数字
  • 您想要包含下限和上限(根据您的图像,看起来像这样)

您可以使用BETWEEN使这一点更清楚:

SELECT * FROM hotel_tax_details 
  WHERE 2500 BETWEEN start_range_cost AND end_range_cost;

您还可以修复原始查询并更正比较:

SELECT * FROM `hotel_tax_details` 
 WHERE `start_range_cost`<=2500 AND `end_range_cost`>=2500

推荐阅读