gpt4 book ai didi

mysql - 如何在同一查询中查询特定类别或所有类别?

转载 作者:行者123 更新时间:2023-11-29 03:03:39 27 4
gpt4 key购买 nike

我有一个列名为“category”的表。在 PHP 中,我使用 sql prepare 语句来选择属于指定类别的所有记录。我用 category=?然后添加具有类别值的变量。这很好用。

但是,如何在同一个查询中选择所有类别?

我尝试使用 null'' 作为类别值,但这没有用。为另一个查询复制整个代码部分可能会创建意大利面条代码,因此我想知道是否有更好的选择。有吗?

最佳答案

基于@JamesMarks 提供的内容,使用像这样的查询会更简单

$query = "SELECT * FROM table WHERE category = ? OR 1 = ?;"

然后将您的 $category 作为第一个参数传递,将 1 或 0 作为第二个参数传递。如果传递 1,则第二项变为 1 = 1 .这始终为真,因此整个表达式始终为真。如果传递 0,则第二项为 1 = 0这总是错误的,但只有在 category = $category 时整个表达式才为真匹配。

这比为“任何类别”指定一个特殊值 0 更简单、更好。

另一种解决方案是动态构建查询:

$where = array();
if ($category) {
$where[] = "category = ?";
$params[] = $category;
}

... perhaps add more terms to $where conditionally ...

$query = "SELECT * FROM table";
if ($where) {
$query .= " WHERE " . implode(" AND ", $where);
}

关于mysql - 如何在同一查询中查询特定类别或所有类别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19211707/

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