SymfonyにおけるCONCATによる文字列検索
Posted on 5月 24th, 2007 by sudabon
MySQLにてカラムを連結して文字列検索でMySQLのCONCAT関数を利用し、連結したカラムに対して文字列検索を行う方法を紹介しましたが、これをSymfonyに実装する方法を紹介します。
例えば、下記のように、
SELECT * FROM tablename WHERE colA like '%keyword%'
単にカラムAに対してkeywordで文字列検索するのであれば、
$c = new Criteria(); $c->add(TablenamePeer::COLA, '%keyword%', Criteria::LIKE); $Tablenames = TablenamePeer::doSelect($c);
とすればOKですが、下記のように、
SELECT * FROM tablename WHERE CONCAT(colA, colB) like '%keyword%'
CONCATを利用しようと思うと、
$con = sfContext::getInstance()->getDatabaseConnection('propel'); $query = "SELECT id FROM " .self::TABLE_NAME. " WHERE CONCAT(colA, colB) like '%keyword%'"; $stmt = $con->prepareStatement($query); $rs = $stmt->executeQuery();
とする必要があります。
パラメータの指定方法の詳細はこちらのTable 8-1 - SQL and Criteria Object Syntaxにありますのでご参照ください。
Filed under: データベース, Webフレームワーク

