我试图通过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
变量,我需要选择存在此$CATID
的所有记录。我不能使用MySQL关系和/或加入。
答案 0 :(得分:0)
我的案例中的简单解决方案是:
//在products表中选择以这种方式编写类别的类别:\ 12 \ 224 \ 85 \ 53
$ reg1 =“类似'”的类别。$ id。“/%'”;
$ reg2 =“类别'%/”。$ id。“'”;
$ reg3 =“类别'%/”。$ id。“/%'”;
$ dq-> andWhere(“($ reg1 OR $ reg2 OR $ reg3)”);