从哪里删除过滤条件

时间:2013-10-18 13:32:48

标签: php regex replace preg-replace str-replace

我有一个通过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部分。

1 个答案:

答案 0 :(得分:1)

假设PHP始终保持输出:

Match:               Replace:
AND \(`BRAND`.*?\)   <nothing>

这个正则表达式寻找另一个AND的开始,以(`BRAND`为懒惰搜索最近的右括号开始。

在PHP中,我相信你会这样做:

preg_replace ( "AND \(`BRAND`.*?\)" , '' , $string);

其中preg_replace接受参数(find,replace,original)。