我有三个变量 $color、$size 和 $category。每个哦,它们可以是一个特定的值,也可以引用所有条目。我想获取所有 $color = "red"、$size = "Medium" 和任何类别或任何颜色、任何尺寸和 $category = " 的产品T 恤”。我可以使用 if/elseif 或 switch 来处理所有案例,但这意味着 12 个案例 + 一个具有任何颜色、任何大小和任何类别的案例,所以总共 13 个案例。
这在 mySql 中甚至可能吗?
样本查询
SELECT
*
WHERE color = $color AND size = $size AND category = $category
看起来您想让 PHP 代码保持简单并使 SQL 代码更复杂,但事实并非如此。
示例:假设
- 用户 A 选择:“
color = 'red', size = 'Medium', category = any
”- 用户 B 选择“
color = any, size = any, category = 'Tshirts'
”条件可以分别简单到:
并为
我认为编写 PHP 代码来在用户选择某些“任何”时产生这些条件并不困难,无论“任何”在您的 PHP/Web 表单中是如何编码的。
但是如果你真的想把它传递给 MySQL,你可以这样做。将“any”作为固定值(例如)传递
'any'
并使用: