2013-10-18 149 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