MySQL
以下のようなテーブルがあったとします。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のもののみ返される(検…
テーブルの構造(カラムの定義)によっては、「INSERT〜SELECT」文で全く同じレコードが二つ作れてしまって困ることがあります。 そんな時に活用できると思います。 ※SELECT文と同じように書けます。
一応、二通りあります。
ダンプファイルが置いてある場所に移動。 データベースを選択 「$use database_choo」 ダンプファイルインポート 「$¥. choo.dump」(「¥」はバックスラッシュ)
再び、 ホストOS⇒Windows ゲストOS⇒CentOS のお話。 WindowsUpdataのインストール後、PCを再起動したら、VMWareも落ちてしまったので、 再度、立ち上げて、CentOSも起動。 ここでまた軽くハマりました…(´・ω・`)
タイトルが思わず関西弁になってしまいましたが (゚Д゚)!!!
Windows環境で。 PHPを使ってMySQLに。 あるフォルダに入っているテキストファイルの中身をインポート。 …という処理の実装です。
「CREATE TABLE」「DROP TABLE」などを行う際、対象となるテーブルが存在してたり、 していなかったりするとエラーが発生しますが…
SQLオンリーでデータを整理する処理があったので、SQL全てをテキストファイルに まとめて、コマンドラインツールから実行する実験を行いました。
WindowsXP上のMySQLで、そこそこ大容量のデータを「SELECT INSERT」しようとしていたときのこと。
上記のPHPプログラムによって抽出されたテキストファイルをMySQLのテーブルにインポート する際、文字化けが発生しました。
round関数を使います(・∀・)
例えば、 「あるカラムがAで始まるレコードを抽出したい」 という場合であれば、LIKE演算子とワイルドカードの組み合わせで十分ですが。 「アルファベットで始まるレコードを抽出したい」 ときには厄介です(´・ω・`)
上記のインポートをした後に、半角カナの部分が化けていることに気付きました…
テーブルにデータをインポートする時には、「LOAD DATA INFILE」を使うのがベストだと思うのですが、 現在携わっているプロジェクトで、1.3GB(2600万件前後)の大容量データを扱う際に インポート途中で止まってしまうことがしばしば…
ALTER TABLE 現在のテーブル名 RENAME TO 新しいテーブル名
MySQL上で、文字列を一発で置換する方法がありました(・∀・)
SHOW INDEX FROM テーブル名;
LIKE演算子の対象にインデックスを張っても無意味だと思っていたのですが、 その対象の先頭にワイルドカード(%)が来ていなければ有効だそうです(・∀・)
SQLで張る場合、構文は CREATE INDEX インデックス名 ON テーブル名(カラム名); …です。
遂にカテゴリーに「MySQL」登場です(・∀・)
/etc/init.d/mysql start /etc/init.d/mysql stop /etc/init.d/mysql restart