* @link http://www.yiiframework.com/ * @copyright 2008-2013 Yii Software LLC * @license http://www.yiiframework.com/license/ */ /** * CMysqlCommandBuilder provides basic methods to create query commands for tables. * * @author Carsten Brandt * @package system.db.schema.mysql * @since 1.1.13 */ class CMysqlCommandBuilder extends CDbCommandBuilder { /** * Alters the SQL to apply JOIN clause. * This method handles the mysql specific syntax where JOIN has to come before SET in UPDATE statement * and for DELETE where JOIN has to be after FROM part. * @param string $sql the SQL statement to be altered * @param string $join the JOIN clause (starting with join type, such as INNER JOIN) * @return string the altered SQL statement */ public function applyJoin($sql,$join) { if($join=='') return $sql; if(strpos($sql,'UPDATE')===0 && ($pos=strpos($sql,'SET'))!==false) return substr($sql,0,$pos).$join.' '.substr($sql,$pos); elseif(strpos($sql,'DELETE FROM ')===0) { $tableName=substr($sql,12); return "DELETE {$tableName} FROM {$tableName} ".$join; } else return $sql.' '.$join; } }