作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为高级搜索栏编写 MySQL 语句。本质上,如果变量不为空,我需要它仅包含 WHERE 语句的部分。
这就是我放弃的地方:
$sql = "SELECT * FROM Products WHERE if($brand != '', brand='$brand' AND, brand LIKE _%)";
我需要这样的东西:
SELECT * FROM Products WHERE (brand = variable)<-[ONLY IF VARIABLE IS NOT BLANK]
我真的尽力避免使用包含数千个 IF 语句的二进制系统。
编辑:
我在这个 WHERE 中需要超过 10 个 If 语句,这也是毫无值(value)的
编辑:
此外,我检查为空的变量存储在本地 PHP 中,而不是存储在 MySQL 服务器上。为了尝试更具体地说明我正在寻找的内容:
$brand = "Samsung";
$sql = "SELECT * FROM Products WHERE [IF BRAND != NULL USE THIS STRING FOR WHERE STATEMENT -> brand='$brand'] [SECOND IF] [THIRD IF]";
最佳答案
您应该使用PDO
或MySQLi
,但以下内容只是为了给您一个想法:
$query = "
SELECT
*
FROM
Products
WHERE
1";
if( $brand != '' )
{
$query .= "
AND brand = '" .$brand ."'";
}
if( $color != '' )
{
$query .= "
AND color = '" .$color ."'";
}
关于php - 条件 SQL WHERE 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26920572/
我是一名优秀的程序员,十分优秀!