Archives by date

You are browsing the site archives by date.

【CakePHP2.x】モデルでのバーチャルフィールド設定方法。

これが使えれば、ちょっと特殊なSQLも簡単に発行可能。

下記使った時の例。(ちょこっと改変してあります)

public function myCount() {
	$return = Cache::read($this->name.'_'.__FUNCTION__);
	if(!$return) {
		// バーチャルフィールドの追加
		$this->virtualFields = [
			'count' => 'count('.$this->alias.'.id)'
		];
		$conditions = [
			$this->alias.'.status' => 1
		];
		$fields = [
			$this->alias.'.hoge',
			$this->alias.'.count',
		];
		$group = $this->alias.'.hoge';
		$return = $this->find('list', [
			'conditions' => $conditions,
			'fields' => $fields,
			'group' => $group
		]);
		Cache::write($this->name.'_'.__FUNCTION__, $return);
	}
	return $return;
}

う?む。唸るほど便利。

 

【Javascript】console.count()メソッドでスクリプトの通過回数をカウントする。

console.count()メソッドを用いると、それを記述した行を通過する度に
引数に渡した値と通過した回数(count()メソッドを呼び出した回数)を
コンソール画面に出力しれくれる。

下記例。

console.count('通過しました。');

↓

通過しました。: 1 

※通過する度に右側の数値が2,3,4とインクリメントしていく。

 

【Javascript】正規表現で不定の文字列を抜き出す。

めも。

グループ化を用いる。

下記例。

'aaahogehogeaaa'.match(/aaa(.*)aaa/)

↓

["aaahogehogeaaa", "hogehoge"]

 

【MySQL】文字列を指定した型にキャストする。

めも。

例えばこんな感じ。(datetimeをdateに)

select cast('2014-04-07 23:23:23' as date);

↓

2014-04-07

 

【MySQL】文字列の前後から空白を取り除く。

めも。

select trim('     aaa     ');

↓

aaa

 

【MySQL】文字列の左側から指定文字数文切り出す。

めも。

select left('abcde', 2);

↓

ab

 

【MySQL】文字列の右側から指定文字数文切り出す。

めも。

select right('.com/', 1);

↓

/


select right('.com/', 3)

↓

om/

今回はURLの末端にスラが有るか無いかを判定するのに使ってみた。

 

【MySQL】サブクエリを発行する際の注意。

自分用メモ。

・テーブルに対してデータを追加・更新する場合、サブクエリ内に同一テーブルを指定出来ない。

・そういう時はサブクエリ内のFrom句にテンポラリテーブルを指定する。

・サブクエリ内のFrom句はテンポラリテーブルとして扱うことが可能。

・テンポラリテーブルには「AS」キーワードで必ず名前をつけてあげないと怒られる。

・これで「Error 1093 (ER_UPDATE_TABLE_USED)」は回避できるハズ。