繁体   English   中英

有条件的PHP MySQL查询

[英]PHP MySQL query with condition

我陷入了一个简单的查询,我无法弄清楚为什么没有按照我的期望去做。 我在数据库上设置了3个值,如下所示:

$measure = 'kg';
$country_code = 'DE';
$weight = '5';

WEIGHT_UNIT | COUNTRIES | MAX_WEIGHT | PRICE
kg          | DE,AT     | 10         | 25.55
lbs         | DE,AT,CH  | 5          | 15.99 

我的PHP查询如下所示:

SELECT *
FROM `article_shipping_options`
WHERE `weight_unit` = '$measure'
    AND `countries` LIKE '%$country_code%'
    AND `max_weight` <= '$weight'
LIMIT 1;

我期望的结果是价格为25.55的行。

我知道我在这里做错了,鄙视我在google上进行了2天的搜索。

我认为您有错误的不等式运算符。 应该不是max_weight >= '$weight'吗?

您是说MAX_WEIGHT >= $weight吗?

尝试使用FIND_IN_SET()并使用max_weight >= '$weight'

SELECT * 
FROM   article_shipping_options 
WHERE  weight_unit='$measure' AND 
       FIND_IN_SET($country_code, countries) > 0  AND 
       max_weight >= '$weight' 
LIMIT  1;

您将$weight设置为5,但该行的MAX_HEIGHT为10。

然后,该行的最后一个条件的值为10 <= 5 由于不满足条件,因此不会返回该行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM