2011-08-12 36 views

回答

1

你最好添加where 1=1到你的主查詢。這樣你可以或不可以有任何數量的AND加入條件。

像這樣:

$base_query = 'select * from table where 1=1'; 
$base_query.= 'and two = 2'; 
$base_query = 'and three = 3'; 

UPDATE:學說ORM風格quering:

//$em is instance of EntityManager 
$qb = $em->createQueryBuilder(); 
$qb->select('u') 
    ->from('User', 'u') 
    ->where('u.id = ?1') 
    ->orderBy('u.name ASC'); 

//you could add any part of query later 
$qb->andWhere("u.name = 'John'"); 

$query = $qb->getQuery(); 
$result = $query->getResult(); 
+0

我喜歡添加變量,並使更新查詢也....m有困難使他們 – Arush

+0

你會很難試圖推廣建築物選擇和更新查詢。我建議你看看一些ORM,比如教義。它比首先編寫普通的SQL更復雜,但維護它非常簡單。請參閱http://stackoverflow.com/questions/185358/simple-php-orm。 個人而言,我會推薦Doctrine ORM:http://www.doctrine-project.org/ – J0HN

+0

什麼樣的思維方式更適合寫作查詢? – Arush

0

我個人preffer這樣做與數組類似的東西:

$where = array(); $where[] = 'Two = 2' $where[] = 'Three = 3'; $sql = implode(' AND ', $where);

其他選項哪個我認爲更好地使用一些數據庫素食類/活躍記錄

關心。

+0

其繁瑣的任務 – Arush