无法使用mysql查询检查两列中的值

ttvkxqim  于 2021-06-15  发布在  Mysql
关注(0)|答案(2)|浏览(278)

我面临一个问题。我需要使用php和mysql检查应该在两个列值中显示的值。我在下面解释我的table。

id      zip_from               zip_to

     1        751001                751030

db\ U邮编:

$post_code='751010';
$sql="select * from db_postcode where zip_from >='".$post_code."' and zip_to='".$post_code."'";
$sqlpin=mysqli_query($conn,$sql);
if (mysqli_num_rows($sqlpin) > 0) {
    $data=array("status"=>"Success","msg"=>"Product is available for this postcode");
}else{
    $data=array("status"=>"Failed","msg"=>"Product is not available for this postcode");
}
echo json_encode($data);

我收到消息了 {"status":"Failed","msg":"Product is not available for this postcode"} 这是错误的,因为代码 751010 存在于 751001-751030 . 这里我需要检查用户给定的值是否应该出现在这两列中。

rhfm7lfc

rhfm7lfc1#

你的问题应该是:

$sql="select * from db_postcode where ".$post_code." BETWEEN zip_from and zip_to";
envsm3lx

envsm3lx2#

你的比较写错了,你要做的是检查一下 $post_code 介于 zip_from 以及 zip_to :

$sql="select * from db_postcode where '$post_code' between zip_from and zip_to";

请注意,只有在所有 zip_from , zip_to 以及 $post_code 值的长度相同,否则在字符串比较中会遇到问题, 2 > 100000 . 如果它们的长度不同,则应将它们转换为整数进行比较。

相关问题