gpt4 book ai didi

php - 如何按范围形成选择查询

转载 作者:行者123 更新时间:2023-11-29 06:08:12 26 4
gpt4 key购买 nike

你好,我的网站有一个搜索引擎。我有两个选择字段。我想举个例子:

输入_a:3输入b:5

所以查询应该如下所示:

if ( ($input_a == true) && ($input_b == false) ){
$filter_orders[] = " `col` LIKE '%$input_a%' ";
}
if ( ($input_a == false) && ($input_b == true) ){
$filter_orders[] = " `col` LIKE '%$input_b%' ";
}
if ( ($input_a == true) && ($input_b == true) ){
$filter_orders[] = " `col`= `col`>='%$input_a%' AND `col` = `col`<='%$input_b%' ";

现在的问题是,我不知道最后一个查询是否不正确。其背后的逻辑是,在我的示例中,应该找到 3 到 5 之间的范围。

所以 1,2 [3,4,5] 6,7,8...

如果有人可以帮助我,我真的很感激。

非常感谢。

最佳答案

应该是这样

$filter_orders[] = " `col`>='%$input_a%' AND `col`<='%$input_b%' ";

编辑:您可能希望整个语句如下所示:

if ( (!empty($input_a) && is_int($input_a)) && (empty($input_b) || !is_int($input_b)) {
$filter_orders[] = " `col`='%$input_a%' ";
}
else if ( (empty($input_b) || !is_int($input_a)) && (!empty($input_b) && is_int($input_b)) ) {
$filter_orders[] = " `col`='%$input_b%' ";
}
else if ( !empty($input_a) && !empty($input_b) && is_int($input_a) && is_int($input_b) ) {
$filter_orders[] = " `col`>='%$input_a%' AND `col`<='%$input_b%' ";
}

插入else if而不仅仅是if帮助确保其他if如果较早的 if 则不会执行发现是真的。

使用=而不是LIKE请确保3 == 3而不是3 and 31 or 32

关于php - 如何按范围形成选择查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10431092/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com