mysql


【mysql】特定のフィールドで重複しているレコードを削除する

たとえば"field1"でレコードが重複しているので、一つを残してその他を削除したいときの手順。

1.field1をグループ化して、重複データを1つにまとめる。その状態のテーブルをコピー。

//グループ化してcopy_tableという名前のテーブルを作った。
CREATE TABLE copy_table as SELECT * FROM main_table GROUP BY field1

2.メインテーブルを削除。(くれぐれも自己責任で!)
DROP TABLE main_table

3.コピーしたテーブルをメインテーブルにリネーム。
ALTER TABLE copy_table RENAME TO main_table

【mysql】 カラムに文字列を追記する方法

すでに内容のあるカラムに文字列を追記するには、「concat」を使う。
以下のとおり。

UPDATE テーブル名 SET 追加先のカラム = concat(追加先のカラム, '追加したい文字列');

ちなみに、追加先のカラムが「null」の状態だと追記されません。

【mysql】複数のテーブルのデータをinsertで一つのテーブルにまとめる

複数のテーブルのデータを一つのテーブルにinsertで追加、まとめるsql

INSERT INTO table_name (column1,column2) SELECT column1,column2 from table_name2;

データが追加される側のカラムとデータを参照するカラムの構造は同じにしてください。

【mysql】すでにあるカラムにユニークキーやプライマルキーを追加する方法

すでにあるカラムにユニークキーやプライマルキーを追加するには次のSQL文を実行すればいい。

プライマルキーなら、

mysql> ALTER TABLE テーブル名 ADD PRIMARY KEY (カラム名);

ユニークキーなら、
mysql> ALTER TABLE テーブル名 ADD UNIQUE (カラム名);

もし、

ERROR 1170 (42000): BLOB/TEXT column 'text_field' used in key specification without a key length

のようなエラーが出たら、キーの長さを指定する必要があるので、

プライマルキーなら、

mysql> ALTER TABLE テーブル名 ADD PRIMARY KEY (カラム名(255以下のキーの長さ));

ユニークキーなら、
mysql> ALTER TABLE テーブル名 ADD UNIQUE (カラム名(255以下のキーの長さ));

こう記述するとエラーにならないはず。

【mysql】3つのテーブルを結合する時の記述

mysqlで3つのテーブルをリレーションしたいときは次のように書く

SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id INNER JOIN table3 ON table1.id = table3.id;

条件で絞りたいなら最後にWHEREをつける

SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id INNER JOIN table3 ON table1.id = table3.id WHERE ~~;

[mysql]フィールドのデータがNULLの最小のプライマリキー(id番号)を出力

最大値が欲しければminをmaxに変える。

mysqlで文字数の多い順、少ない順で取り出す記述(ソート)

mysql文字列の多い順少ない順でのソート

■文字数が少ない順に取り出す記述
$sql = "SELECT *,CHAR_LENGTH(フィールド名) as MOJI_LEN FROM テーブル名 ORDER BY MOJI_LEN ASC";

■文字数が多い順に取り出す記述
$sql = "SELECT *,CHAR_LENGTH(フィールド名) as MOJI_LEN FROM テーブル名 ORDER BY MOJI_LEN ASC";

mysqlで特殊文字や機種依存文字が文字化け「?」になる場合の対処法

mysqlを利用した際、特殊文字や機種依存文字だけが文字化け、「?」になる場合の対処法

mysql_set_charset('cp932');

と記述。

「cp932」は「SJIS for Windows Japanese」

SSH(poderosa)を使って、さくらのMySQLサーバーに接続する方法

SSH(poderosa)を使って、さくらのMySQLサーバーに接続する方法の覚書。

現在のさくらサーバーでは、新規ユーザーはTELNETが使えない。なので、データベースをコマンドラインで操作するには、SSHで接続する必要がある。

1.poderosaでサーバーにログインする。

詳しくは↓
http://support.sakura.ad.jp/manual/rs/others/ssh.html

2.ログインできたら、データベースの情報を入力

mysql -u データベースユーザー名 -h  データベースサーバー名(mysql***.db.sakura.ne.jp) -p

入力したらENTER。

するとパスワードが求められるので入力(この際、カーソルは動かないが仕様)、そしてENTER。

ログインに成功すると、「mysql>」と出るはず。

なお、自身のデータベースユーザー名、データベースサーバー名はさくらのサーバーコントロールパネル空確認しておく必要がある。また、初回はそこからパスワードを設定することも必要。

5 / 512345