Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php pdo查询范围使用值“选择”;“以上”;_Php_Mysql_Select_Pdo - Fatal编程技术网

php pdo查询范围使用值“选择”;“以上”;

php pdo查询范围使用值“选择”;“以上”;,php,mysql,select,pdo,Php,Mysql,Select,Pdo,搜索参数: “以上” 此场景应查询具有上述最大值的记录。但是我得到的值是最低的,因为当使用Floatval()应用name时,它会变成0,所以我所做的是: Min : 1000000 Max : Above 但我还是得到了最小值为0的记录 上图是我数据库中的记录。当我用上面的搜索时,我应该得到第二条记录,而不是第一条记录 如何处理此范围字符串比较 提供一些样本数据和样本的预期结果data@Viki888添加了一张图片,希望这能让我更容易理解我的问题。我听不懂你的问题。请提供样本数据和基于该样

搜索参数:

“以上”

此场景应查询具有上述最大值的记录。但是我得到的值是最低的,因为当使用
Floatval()
应用name时,它会变成
0
,所以我所做的是:

Min : 1000000
Max : Above
但我还是得到了最小值为
0
的记录

上图是我数据库中的记录。当我用上面的
搜索时,我应该得到第二条记录,而不是第一条记录

如何处理此范围字符串比较


提供一些样本数据和样本的预期结果data@Viki888添加了一张图片,希望这能让我更容易理解我的问题。我听不懂你的问题。请提供样本数据和基于该样本数据的预期输出。样本数据位于图像上方,即数据库中的数据。场景是,当我在数据库中选择参数为“上方”的记录时,我应该得到第二条记录,因为max等于“上方”@Shadow,我希望这是清楚的。只需将下方替换为0(或-1),将上方替换为所选数值字段的最大值。这种设计只会让你的生活变得复杂。
Min : 1000000
Max : Above
$name = (floatval($_POST['name']) > 0) ? floatval($_POST['name']) : $_POST['name'];

$stmt = $dbh->prepare("SELECT * FROM salary_table WHERE "
. "( (LOWER(max_compensation) = :name OR LOWER(min_compensation) = :name) OR (cast(min_compensation as decimal(10, 6)) <= :name AND :name <= cast(max_compensation as decimal(10, 6)))) AND date_deleted IS NULL"); //AND date_deleted IS NULL
$stmt->bindValue(":name", $name, PDO::PARAM_STR);
Above