Mee's Engineer Blog

PHPエンジニアの技術ブログ

別テーブルのデータを引用コピーしたい場合

新しく作成したテーブルの特定のフィールドに、既に存在している別テーブルの特定フィールドのデータを引用コピーしたい、
そんな事がありました。

そういう時にどんなUPDATE文を作ればいいのかというと、下記のようになります。

UPDATEをかけたいテーブル → テーブルA
引用元のテーブル → テーブルB

UPDATE (テーブルA)
SET (テーブルA).(フィールド名) = (テーブルB).(フィールド名)
FROM (テーブルA)
JOIN (テーブルB) ON (テーブルA).(結合させるフィールド名) = (テーブルB).(結合させるフィールド名)

DB別ユーザーリスト表示クエリ

DBのアクセスユーザー情報を参照したい時に一覧を表示するためのクエリです。

MySQL

SELECT Host, User, Password FROM mysql.user;


SQL Server Management Studio

SELECT *
FROM sys.server_principals
WHERE TYPE IN ('S')
AND name NOT LIKE '%##%'
ORDER BY name, type_desc;

SQL Server Management StudioでExcelファイルのデータをインポートする方法

業務中30000レコード程あるデータの更新を依頼され、それがExcelファイルで渡されました。
SQL Server Management StudioではExcelファイルをコピー&ペースト(以下コピペ)でinsertできる機能が備わっているようです。

①insertするテーブルのフィールド数と同じセル数(1行当たり)で必要データをすべてコピーする
SQL Server Management Studioでinsertしたいテーブルを開き、最終行を右クリックし貼り付け

以上です。

私の場合は元データをすべて削除してからコピペinsertしたのですが、両方合わせて20分ぐらいかかりました・・・

array_diff()を使って差分を取得する

配列の要素を比較し、その差分を抽出したい時にはarray_diff()が便利です。

// array array_diff ( array $array1 , array $array2 [, array $... ] )
// $array2以降と比較し、$array1にだけ存在する要素を配列で返す。

$old_hobby = array( 'プログラミング' , 'ファッション' , '楽器' , 'アニメ' );  // 昔の趣味
$now_hobby = array( 'プログラミング' , 'ゲーム' , 'アニメ' , '資産運用' ); // 現在の趣味

$add_hobby = array_diff( $now_hobby , $old_hobby );  // ゲーム、資産運用
$lost_hobby = array_diff( $old_hobby , $now_hobby ); // ファッション、楽器

このようにすることで新しく増えた趣味($add_hobby)、逆にもう興味が無くなってしまった趣味($lost_hobby)等を差分を取得する事ができます。

IE11でJavaScriptがうまく動かない時

JSで開発中、IE11にて開発者ツールを立ち上げているときちんと動作するのに開発者ツールを閉じると動作しないという不具合に直面した事があります。

 

理由はconsole.log()をIEが認識できずにエラーが起こっていたからでした。

 

同じような症状に遭遇した方は、console.log()をコメントアウトして確認してみてください。