0

我对数据库中的索引不太了解,所以我的问题可能很愚蠢,但是......我有个人参数(姓名,姓氏,组织,工作等),现在我正在prePersist()方法中创建索引字符串,比如这个:

$this->search_index = $this->name.' '.$this->surname.' '.$this->orgnaization;

使用“”进一步搜索分解字符串,并使用LIKE search_index 比较每个部分。

但这看起来很疯狂。最佳做法是什么?ps我的示例代码:

$queryBuilder = $this->createQueryBuilder('s');
foreach(explode(" ", $query) as $key=>$part){
     $queryBuilder->orWhere('s.searchindex LIKE:name'.$key)
          ->setParameter('name'.$key, $part);
}
4

1 回答 1

0

如果我理解你是正确的,我想你正在寻找这样的东西:

$collection = Doctrine::getTable('User')->createQuery('u');
    ->where('column_name LIKE ?', $this->name)
    ->orWhere('column_surname LIKE ?', $this->surname)
    ->orWhere('column_organization LIKE ?', $this->organization)
    ->execute();
于 2012-07-27T11:19:36.097 回答