gpt4 book ai didi

php - 如何在SQLite中搜索多个值?

转载 作者:行者123 更新时间:2023-12-03 19:03:56 25 4
gpt4 key购买 nike

我正在创建一个非常简单的PHP文件,该文件搜索SQLite数据库中的表。
我希望它根据2个参数(最小值和最大值)来过滤我的表,但是我希望能够指定一个参数,两个或什至没有一个。如何将其转换为SQL查询?

<?php
$db = new PDO('sqlite:database.db');

$min = $_GET['min'];
$max = $_GET['max'];

if($min == '') $min = -1;
if($max == '') $max = -1;

$res = $db->prepare('SELECT * FROM Roteiro WHERE ...');
$res->execute(array(...));

$test = $res->fetchAll();
print_r($test);
?>

最佳答案

where (? > a               or ? is null)
and (? = foo or ? is null)

-- etc...


诀窍是如果该值为空,则满足条件。确保您传递的类型为null,而不是一些空字符串或其他虚假值。

查询优化器应该毫无问题地优化这些额外的条件,因为它很容易看到它们在每一行都不会改变。

一种等效的说法

where (? is not null             and ? > a)
and (? is not null and ? = foo)


但我更喜欢第一种方式。

关于php - 如何在SQLite中搜索多个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8360192/

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