うめぼしジョイスティック - ivoice

CakePHP、JavaScript、jQuery等のプログラミングについて書いていきます 思考は、うめぼしのように硬く、そして柔らかく。

MySQL

さくらインターネットでCRONを用いてシェルスクリプトを実行し、SQL文でバッチ処理を行う方法(MySQL)

自分の作ったMySQLのデータベースに対して、定期的(一日一回、など)にSQLクエリを実行したい、という場合があると思います。 ランキングサイトを作っている場合や、スコア計算などを行う必要がある場合などです。 年度や年が変わったときにSQLクエリを実行…

SQLクエリの作成に役立つ参考サイト(MySQL)

このサイトは読みやすくてまとまっていてとても分かりやすいです。 「Webブラウザで気軽に学ぶ実践SQL講座」最新記事一覧 - ITmedia Keywordswww.atmarkit.co.jp これは、SELECTとUPDATEを同時に使う際に役立ったブログです。 yoko_net Blog : 結合したSELEC…

MySQLで子データのスコアを親ごとに足したものを違うテーブルに保存するクエリ。SELECTとUPDATEを同時に行う。

MySQLで子データのスコアを親ごとに足したものを違うテーブルに保存する方法です。 SELECTとUPDATEを同時に行います。 構造的には UPDATE 保存先テーブル名 ( SELECT 親テーブル名, SUM(子テーブル名.score) amount FROM 子テーブル名 LEFT JOIN 親テーブル…

CakePHP2系でデータ読み出しが遅いときはコントローラーのusesを見直してみよう。

これはCakePHP2系でとても重要なことです。リレーションの順番に関することです。例えば、 SampleDog Appleという3つのデータベースをリレーションさせていたとして、 コントローラーSamplesControllerでDogとAppleのモデルを読み出したい場合は App::uses(…

PHPで、年月日時間のデータ(created)から日付だけ取り出す方法

PHPもしくはCakephpで、MySQLのカラムにcreatedを入れたあとなどに、 その中の年月日だけ出したい(時間はいらない)場合がありますよね。 今回は、そのような場合に、(年と)『日付』だけ取り出すテクニックです。 例えば、$exampleという変数に、Example…

MySQLでUPDATEするときに、idを~~から~~まで、と範囲指定するやり方

resultsというテーブルで、idの1311から1326までの event_name_id という変数を全て59にしたい場合は、id BETWEEN a AND bを使って、UPDATE results SET event_name_id = 59 WHERE id BETWEEN 1311 AND 1326 とすれば完了です。

MySQLでidカラムを作る際の注意点

データベースを作るときには、掲示板などの場合は、 必ず「id」カラムを作りましょう。そして、データ型は、INT型にして、phpMyAdminの、「A_I」というチェックボックスをオンにしましょう。 AIはオートインクリメントの略です。データに割り当てられる番号…

phpMyAdminでのクエリの非常にカンタンな書き方(MySQL)

既にあるデータを変更したい場合のUPDATEを覚えましょう。 UPDATE テーブル名 SET カラム名 = 3 WHERE id < 100; この形が基本になります。 これを、変更したいテーブルのSQLの部分で実行すると、 idが100以下の行で、変更したいカラムに3が入ります。 …

MySQLで驚異的な検索速度を実現するインデックスのお話

CakePHPでサーチプラグインを用いているときに、 「検索速度が遅いなぁ…」 と感じたことはありませんか? 実は、データベースに「インデックスを張る」 という事を行うと、検索速度が速くなります。 やることは、ただひとつ。 phpMyAdmin上で、検索されるタ…