2012-01-10 50 views
0

我試圖從Doctrine ORM獲取MySQL的產品記錄集。我使用正則表達式來選擇一組記錄,其中類別字段值可以包含這些值:學說和正則表達式

類別

12/43/45/101/109

OR

類別

1/12/43/45/101/109

OR

類別

43/45/101/109/12

這是我的信條代碼:

$id = 12 
$dq = Doctrine_Query::create() 
      -> from ('Products p') 
      -> leftJoin("p.ProductsData pd WITH pd.language_id = $locale") 
      -> leftJoin("p.ProductsAttributesGroups pag") 
      -> where('p.enabled = ?', 1) 
      -> andWhere ("(categories REGEXP \"^$id[\\\]*\" OR " . 
         "categories REGEXP \"^[\\\]$id*\" OR " . 
         "categories REGEXP \"^[\\\]$id[\\\]*)\")") 
      -> orderBy('position asc'); 

我有$id變量我需要選擇這個所有的記錄存在。我無法使用MySQL關係和/或連接。

+6

如果您已經解決了您的問題,請隨時發佈答案並將其標記爲未來訪問者接受的答案。 – 2012-01-10 16:20:20

回答

0

在我的情況下,簡單的解決辦法是這樣的一個:

//獲取在該類別已經寫在這樣的產品表中選擇的類別:\ 12 \ 224 \ 85 \ 53

$ reg1 =「類似於'」。$ id。「/%'」;
$ reg2 =「類似'%/」。$ id。「'」;
$ reg3 =「類似'%/」。$ id。「/%'」;
$ dq-> andWhere(「($ reg1 OR $ reg2 OR $ reg3)」);