2013-10-18 44 views
1

我有一个通过PHP动态生成的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的品牌科。

+0

str_replace需要匹配确切的短语。但BRAND和filter_0这两个字会动态变化。 – codeGEN

+0

Where子句是如何生成的? –

回答

1

假设PHP一贯主张,输出:

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

此正则表达式查找的另一个开端,以(`BRAND`带有水上搜索最近的右括号开始

在PHP ,我相信你会做到这一点。

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

其中的preg_replace需要的参数(查找,替换原来的)

+0

感谢这工作。需要两个像preg_replace(“/ AND \('BRAND'。*?\)/ i”,'',$ string)的开始和结束斜杠, – codeGEN