MySQL

ORとINの使い所

以下のようなテーブルがあったとします。profileテーブル。 id name 1 A 2 B 3 C 4 D 5 E 複数条件のうち、1つでも当てはまるものがあれば結果を1つだけ返す ORを使う SELECT * FROM profile WHERE name = 'A' OR 'B' OR 'D'; ⇒nameがAのもののみ返される(検…

DELETE文に「ORDER BY」や「LIMIT」を使える

テーブルの構造(カラムの定義)によっては、「INSERT〜SELECT」文で全く同じレコードが二つ作れてしまって困ることがあります。 そんな時に活用できると思います。 ※SELECT文と同じように書けます。

「今日から一週間前」のデータを取得するSQL

一応、二通りあります。

ダンプファイルのインポート

ダンプファイルが置いてある場所に移動。 データベースを選択 「$use database_choo」 ダンプファイルインポート 「$¥. choo.dump」(「¥」はバックスラッシュ)

CentOSにつながらぬ。CentOS上のMySQLにもつながらぬ。

再び、 ホストOS⇒Windows ゲストOS⇒CentOS のお話。 WindowsUpdataのインストール後、PCを再起動したら、VMWareも落ちてしまったので、 再度、立ち上げて、CentOSも起動。 ここでまた軽くハマりました…(´・ω・`)

「INTO OUTFILE」でNULLが¥Nになってまうがな。

タイトルが思わず関西弁になってしまいましたが (゚Д゚)!!!

「LOAD DATA INFILE」を実行する。

Windows環境で。 PHPを使ってMySQLに。 あるフォルダに入っているテキストファイルの中身をインポート。 …という処理の実装です。

存在しているか、していないか。

「CREATE TABLE」「DROP TABLE」などを行う際、対象となるテーブルが存在してたり、 していなかったりするとエラーが発生しますが…

テキストファイルに書かれたSQLをコマンドラインから実行する。

SQLオンリーでデータを整理する処理があったので、SQL全てをテキストファイルに まとめて、コマンドラインツールから実行する実験を行いました。

修理しろと?!

WindowsXP上のMySQLで、そこそこ大容量のデータを「SELECT INSERT」しようとしていたときのこと。

文字化けに悩む。 -Part2-

上記のPHPプログラムによって抽出されたテキストファイルをMySQLのテーブルにインポート する際、文字化けが発生しました。

四捨五入したいとき。

round関数を使います(・∀・)

MySQLでも正規表現

例えば、 「あるカラムがAで始まるレコードを抽出したい」 という場合であれば、LIKE演算子とワイルドカードの組み合わせで十分ですが。 「アルファベットで始まるレコードを抽出したい」 ときには厄介です(´・ω・`)

半角カナのインポートで文字化け発生 (゚Д゚)!!!

上記のインポートをした後に、半角カナの部分が化けていることに気付きました…

チョッとしたチューニング。

テーブルにデータをインポートする時には、「LOAD DATA INFILE」を使うのがベストだと思うのですが、 現在携わっているプロジェクトで、1.3GB(2600万件前後)の大容量データを扱う際に インポート途中で止まってしまうことがしばしば…

テーブル名を変える。

ALTER TABLE 現在のテーブル名 RENAME TO 新しいテーブル名

文字列置換

MySQL上で、文字列を一発で置換する方法がありました(・∀・)

インデックスの確認。

SHOW INDEX FROM テーブル名;

インデックスとLIKE演算子

LIKE演算子の対象にインデックスを張っても無意味だと思っていたのですが、 その対象の先頭にワイルドカード(%)が来ていなければ有効だそうです(・∀・)

インデックスを張ろうとしたら…

SQLで張る場合、構文は CREATE INDEX インデックス名 ON テーブル名(カラム名); …です。

コマンドあれこれ。

遂にカテゴリーに「MySQL」登場です(・∀・)

MySQLの起動に関するコマンド。

/etc/init.d/mysql start /etc/init.d/mysql stop /etc/init.d/mysql restart