カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

MySQLのテーブルから重複したレコードの抽出と削除

MySQLのテーブルで指定した列のデータが重複しているレコードを抽出、及び削除する方法をご紹介します。

まずはサンプルのテーブルを用意しましょう。

CREATE TABLE `sample` (
  `id` int(8) NOT NULL AUTO_INCREMENT,
  `name` varchar(30) NOT NULL,
  `type` int(4) NOT NULL,
  PRIMARY KEY (`id`)
);

サンプルデータを登録します。

INSERT INTO `sample` VALUES
    (DEFAULT, '赤井', 1),
    (DEFAULT, '井田', 2),
    (DEFAULT, '宇野', 3),
    (DEFAULT, '江崎', 1),
    (DEFAULT, '奥本', 2);

テーブルの中身を見てみると次のようになります。

mysql> select * from `sample`;
+----+--------+------+
| id | name   | type |
+----+--------+------+
| 1  | 赤井   | 1    |
| 2  | 井田   | 2    |
| 3  | 宇野   | 3    |
| 4  | 江崎   | 1    |
| 5  | 奥本   | 2    |
+----+--------+------+

typeに重複したデータがあることが分かります。
それではCOUNT関数とHAVING句を使って重複している件数を確認してみましょう。
続きを読む…»

4,311 views

Windows XAMPPのPHPバージョン切り替え

WindowsでXAMPPを使ってPHPの開発をしているとPHPの特定のバージョンで動作検証がしたい!ということがあると思います。
そんな時に手軽にPHPのバージョンを切り替えできる方法があったのでご紹介します。

※XAMPPはC:\xamppにインストールされている条件での説明となります。

まずはSourceForgeにて公開されているXAMPPの過去のバージョンをダウンロードします。
https://sourceforge.net/projects/xampp/files/XAMPP%20Windows/

XAMPPのバージョン=PHPのバージョンなので、検証したいバージョンのXAMPPのZIP形式をダウンロードします。
ここでは例として7.4.19をダウンロードしたと仮定します。
ダウンロードしたら解凍しましょう。

前準備としてC:\xamppにある「php」フォルダーをリネームします。
PHPのバージョンに合わせてリネームしましょう。
PHPバージョンが8.0.6であれば「php」を「php8.0.6」にリネームします。
次にC:\xampp\apache\conf\extraにある「httpd-xampp.conf」を「httpd-xampp.conf.8.0.6」にリネームします。
これで前準備は完了です。

次にダウンロードして解凍したxamppフォルダーにある「php」フォルダーを「php7.4.19」にリネームし、C:\xampp内に入れます。
そしてapache\conf\extraにある「httpd-xampp.conf」を「httpd-xampp.conf.7.4.19」にリネームし、C:\xampp\apache\conf\extra内に入れます。

コマンドプロンプトを管理者として実行します。
C:\xamppに移動し次のコマンドを実行します。

mklink /D php php7.4.19

C:\xampp\apache\conf\extraに移動し次のコマンドを実行します。

mklink httpd-xampp.conf httpd-xampp.conf.7.4.19

こうすることでバージョンが付加されたフォルダーであってもシンボリックリンクでアクセスすることが出来るようになります。
別のバージョンに切り替えたいときはシンボリックリンクを作り直せばいいということになります。

4,521 views

ACCCESS レコード移動のエラー回避

ACCESSのフォームにレコード移動のボタンを追加し、前後のレコード移動が出来るようにするときのエラー回避についてです。
例えば、カレントレコードが最終レコードのときに次のレコードへ移動しようとするとエラーが発生します。
それを回避するために基本的には次のように処理します。

Private Sub 次へ_Click()
On Error Resume Next

    DoCmd.GoToRecord , , acNext

End Sub

On Error Resume Nextは「エラーが発生した場合、無視して次のコードへ進む」という意味です。

レコード移動のボタンには前述のようにエラーを無視するよう処理を記述しますが、
私はそれ以前に移動可能な場合のみボタンが押せるようにしています。

フォームのレコード移動時イベントに以下を記述します。

If Me.CurrentRecord = Me.Recordset.RecordCount Then
    次へ.Enabled = False
Else
    次へ.Enabled = True
End If

If Me.CurrentRecord = 1 Then
    前へ.Enabled = False
Else
    前へ.Enabled = True
End If

現在表示中のデータが最終レコードであれば「次へ」ボタンを押せないよう無効にし、
先頭レコードであれば「前へ」ボタンを押せないように無効にしています。

6,154 views

WindowsでXAMPPを使ってLaravel環境構築

WindowsでLaravelでの開発を行うために、XAMPPとComposer・Node.jsをインストールしてLaravelの開発環境を構築します。
少し長いですがお付き合いください。

XAMPPのインストール

まずはXAMPPのサイトからインストーラーをダウンロード
https://www.apachefriends.org/jp/

ダウンロードしたインストーラーをダブルクリックしセットアップを開始します。
セキュリティソフトがインストールされているとインストールが遅くなりますというようなメッセージが表示されますが、「Yes」を押してそのまま続行します。

UAC(ユーザーアカウントコントロール)に関するメッセージが表示されて、「C:¥Program Files」にインストールするのは避けて下さいということのようです。
「OK」を押します。

セットアップウィザードが表示されたら「Next」をクリック

インストールする機能の選択画面になりますが、デフォルトで全て選択されているのでそのまま次へ行きます。

続きを読む…»

6,149 views

さくらのレンタルサーバーにLaravelをインストール

さくらのレンタルサーバーにLaravelをインストールしてみました。

プランがスタンダード以上である必要があります。(SSHログインができないためです)

Windows PowerShell等を使ってSSHでログインします。

ログインが出来たら現在のディレクトリを確認してみましょう。

% pwd
/home/{username}

ユーザーのホームディレクトリにいることを確認できればOK。

Composerのインストール

LaravelをインストールするためにComposerが必要なのでインストールします。

% curl -sS https://getcomposer.org/installer | php
All settings correct for using Composer
Downloading...

Composer (version 2.0.14) successfully installed to: /home/{username}/composer.phar
Use it: php composer.phar

カレントディレクトリにcomposer.pharというファイルがあればインストール成功です。
念のため、インストールが出来ているか確認してみましょう。
次のコマンドを入力してください。

% php composer.phar

続きを読む…»

5,414 views