我有一个通过PHP动态生成的WHERE条件。这是查询的 WHERE 部分的示例
WHERE 1=1 AND (`CATEGORYID`='A1') AND (`BRAND`=:filter_0 OR `BRAND`=:filter_1)
AND (`KEYWORDS` LIKE :keyword_2)
AND `TYPE` = '0' AND `DISTRICT`='1' ORDER BY `STARTDAY` DESC
任何人都可以建议一种删除 WHERE 子句某些部分的方法,例如:从 SQL 中删除 BRAND 部分。
假设 PHP 始终维护该输出:
Match: Replace:
AND '(`BRAND`.*?') <nothing>
此正则表达式查找另一个以 ('BRAND' 开头的 AND 的开头,并懒惰地搜索最近的右括号。
在PHP中,我相信你会这样做:
preg_replace ( "AND '(`BRAND`.*?')" , '' , $string);
preg_replace接受参数的地方(查找、替换、原始)。