UI設計したり、ウェブシステムを開発したりします。 

SQL見るだけクエリ#032 SQL REPLACE関数で指定文字を置き換え

記入日:2023-02-09 編集日:2023-02-09

SQL見るだけクエリ。今回はデータとして保存されているstatusデータから、REPLACE関数を使って、文字を置き換えてstatus2を取得してみようと思います。

この記事を読むと(約3分)
保存されているカラム内の指定文字を別の文字に置き換える事が可能になります。

REPLACE関数の基本形は以下になります。
SELECT REPLACE(カラム名, "置換対象", "置換後の文字") FROM テーブル名

以下のような、状態(status)データをもつ、記事投稿テーブルを用意しました。

テーブル名:sample_note

idtittledatemember_idlinestatus
1AAAAA2022-12-261501
2BBBBB2022-12-272501
3CCCCC2022-12-283501
4DDDDD2022-12-29500
5EEEEE2022-12-301501

以下のコードは、statusカラムに入っている数字が1の場合、REPLACE関数によって”有効”という文字に置き換えているSQLです。いつもの様に、ポイントは、9行目のみです。

SELECT *, REPLACE(status,1,"有効") AS status2 FROM sample_note  この部分で、データベースの全てのレコードと、REPLACE関数によって置き換えられた状態の表記(status2)を取得しております。

try {
    include_once '../model/class.php';

    // データベース接続
    $database = new Database();
    $db = $database->connect();

    // SQLを準備し、パラメータをバインドする
    $query = 'SELECT *, REPLACE(status,1,"有効") AS status2 FROM sample_note';
    $stmt = $db->prepare($query);

    // 実行する
    $stmt->execute();

    // 結果を取得する
    $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
    print_r($result);

    // データベースから切断する
    $database->disconnect();

} catch(PDOException $e) {
    echo $e->getMessage();
}

これを実行すると、二次元連想配列という形式で、結合された情報を取得することができます。

            Array
(
    [0] => Array
        (
            [id] => 1
            [tittle] => AAAAA
            [date] => 2022-12-26
            [member_id] => 1
            [line] => 50
            [status] => 1
            [status2] => 有効
        )

    [1] => Array
        (
            [id] => 2
            [tittle] => BBBBB
            [date] => 2022-12-27
            [member_id] => 2
            [line] => 50
            [status] => 1
            [status2] => 有効
        )

    [2] => Array
        (
            [id] => 3
            [tittle] => CCCCC
            [date] => 2022-12-28
            [member_id] => 3
            [line] => 50
            [status] => 1
            [status2] => 有効
        )

    [3] => Array
        (
            [id] => 4
            [tittle] => DDDDD
            [date] => 2022-12-29
            [member_id] => 
            [line] => 50
            [status] => 0
            [status2] => 0
        )

    [4] => Array
        (
            [id] => 5
            [tittle] => EEEEE
            [date] => 2022-12-30
            [member_id] => 1
            [line] => 50
            [status] => 1
            [status2] => 有効
        )

)
			

見やすくする為に、HTMLとCSSで体裁を整え、状態の文字表記を追加で表示しました。

REPLACE関数で1を”有効”に置き換え

id tittle status status2
1
AAAAA
1
有効
2
BBBBB
1
有効
3
CCCCC
1
有効
4
DDDDD
0
0
5
EEEEE
1
有効

SQLの使いどころ

サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。

SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。

また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。

KK

機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。