gpt4 book ai didi

php - 带有可选过滤器的 MySQL 查询

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

我的表中有一列 'x' 为 1 或 0。我需要一个 MySQL 查询返回所有行,或者返回 x = 1 或 x = 0 的行。

我想要的三个结果中的哪一个设置在变量 $type 中。我所做的是创建三个查询和一个 if 子句:

if ($type == 'all') $query = "SELECT * FROM contracts";
elseif ($type == 'n') $query = "SELECT * FROM contracts WHERE x = '0'";
elseif ($type == 'f') $query = "SELECT * FROM contracts WHERE x = '1'";

这行得通,但对我来说似乎不是最佳解决方案,因为我必须写 3 次几乎相同的查询,如果我想更改某些内容,我必须更改 3 次。

我试着让 $type = '', 0 or 1 然后 WHERE x = '$type' 但那没有用。

我如何只使用一个 MySQL 查询来做到这一点?

最佳答案

if ($type = 'all') {
$filter = '';
} elseif ($type == 'n') {
$filter = "WHERE x = '0'";
} elseif ($type == 'f') {
$filter = "WHERE x = '1'";
} else {
die("Invalid filter type: $type");
}
$query = "SELECT * FROM contracts $filter";

如果您使用 $type = '', 0, or 1 方案,您可以:

$query = "SELECT * FROM contracts";
if ($type !== '') {
$query .= " WHERE x = '$type'";
}

关于php - 带有可选过滤器的 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22354119/

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