2010-04-25 34 views
17

我怎样写使用Doctrine的findBy *以下MySQL查询()方法?:LIKE和%通配符主义的findBy *()

SELECT column_name1, column_name2 FROM table_name 
WHERE column_name3 LIKE '%search_key%'; 

例如,获取来自一个名为“的ColumnName列多行“(下)使用Doctrine:

$users = Doctrine::getTable('User')->findByColumnName('active'); 

echo $users[0]->username; 
echo $users[1]->username; 

我想:

$search_key = 'some value'; 
$users = Doctrine::getTable('User')->findByColumnName('%$search_key%'); 

    echo $users[0]->username; 
    echo $users[1]->username; 

和我没有错误,但没有任何显示。

任何援助将非常感激。提前致谢。

回答

21
$users = Doctrine::getTable('User')->createQuery('u') 
    ->where('column_name3 LIKE ?', '%search_key%') 
    ->execute(); 
+0

+1。很好,谢谢Coronatus – Anthony 2010-04-25 22:32:48

+0

@Coronatus,如果我有一个名为$ search_key的变量,其中包含要搜索的内容的值,那么在查询中如何将%search_key%替换为%$ search_key%? – Anthony 2010-04-25 23:37:39

+0

好的谢谢你的提示! – Anthony 2010-04-26 00:21:51