CakePHP4、5でSELECT telephone as tel FROM usersの様にasでカラムに別名を付ける方法
2025/01/31
CakePHP4、5のクエリビルダーを使用してカラムに別名を付与する方法
SQLでカラムに別名を付与して値を取得する方法
SQL文で、取得するカラム名と違う別名を付けて値を取得する場合は、下記のように「as」を使用してカラムの別名を指定します。
1 |
SELECT telephone as tel FROM users; |
上記の例は、usersテーブル内のカラム名は「telephone」ですが、短い「tel」という別名に変更して取得します。
CakePHP4、CakePHP5で、この「as」を使用してカラムの別名を指定する処理の実装方法を解説します。
CakePHP4、5のクエリビルダーを使用してカラムに別名を付与する方法
下記は、基本的な処理であるテーブル内のカラム名である「telephone」として値を取得する処理です。
1 2 3 4 |
$select = [ "telephone" ]; $users = $this->Users->find()->select($select); |
これに対して、「telephone」のカラムの値を「tel」として取得する場合は、「$select
」に指定している配列のキーとして「tel」を指定すれば OKです。
1 2 3 4 |
$select = [ "tel" => "telephone" ]; $users = $this->Users->find()->select($select); |
仕組みが分かっていれば非常に簡単です。
CakePHP4、5のクエリビルダーを使用してカラムに別名を付与する際の注意点
処理自体は特に問題なく簡単なのですが、いろいろ試してみた結果、「as」で指定する項目名には「-
(ハイフン)」を使用することができない、ということが分かりました。
1 2 3 |
$select = [ "tele-phone" => "telephone" ]; |
具体的には上記の「tele-phone
」のように「-(ハイフン)」を入れると、下記のようなエラーが発生します。
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '-amount AS telephone...' at line 1
このほか「+
(プラス)」「*
(アスタリスク)」「/
(スラッシュ)」なども同様のエラーが発生します。
「tele-phone
」を囲う「"
(ダブルクオーテーション)」を「'
(シングルクォーテーション)」に変えてもエラーが発生する状況に変化はありませんでした。
ちなみに、「_
(アンダースコア)」は問題ありませんでした。
ご注意ください。
CakePHP5の関連記事
CakePHP4、5のユーザ認証でID、PASS以外の削除フラグなども条件加える方法CakePHP4、CakePHP5系の認証処理でログインの有無の確認、ユーザ情報の取得の方法
CakePHP4、5で$_SERVERと同じようにURIを取得する「getUri()」の紹介
getParam('action')
で取得するアクション名は別関数に移動しても不変CakePHP4系、CakePHP5系のexists()でカラムを指定して値の有無をチェックする方法解説
CakePHP4、5のnewEmptyEntityで作成したオブジェクトは空なのか、確認してみた
CakePHP4、5でSELECT telephone as tel FROM usersの様にasでカラムに別名を付ける方法
CakePHP4、5の認証処理で認証が通らない際の確認方法と確認箇所の紹介
CakePHP5系で認証機能のAuthenticationプラグインをインストール・エラー発生注意
CakePHP5でヘルパーから他のヘルパーを読み込む方法・CakePHP4からの変更点
その他の「CakePHP5」に関する記事一覧
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
CakePHP3でデフォルトのソート条件を設定してユーザの選択肢たソート条件を有効にする方法
CakePHP3でデフォルトのソート条件を設定しつつ画面上でユーザがソート条件を選択したときもソート処理を実行させる方法を解説。ソート条件はページネーションの処理として実装。
-
-
CakePHP4のcake cache clear_allでPermission deniedはパーミッションの変更が必要
CakePHP4でキャッシュをクリアするコマンドcake cache clear_allでPermission deniedのエラーが出るのはcakeにパーミッションが足りないとき。その対処方法を解説。
-
-
CakePHP 2.3で確認画面付きのお問い合わせフォームの作り方
CakePHPで確認画面付きのお問い合わせフォーム、メールフォームの作り方をサンプルを提示しながら解説。
-
-
CakePHP3のCakeDC/Usersのバリデーションのカスタマイズ方法解説
CakeDC謹製Usersプラグインの紹介。Usersのカスタマイズとして入力項目のバリデーションの変更を、プラグインのファイルは触らずオーバーライドにより実装する方法を解説する。
-
-
CakePHP4のCakeDC/Usersの Usersへの接続、バリデーションのカスタマイズ方法解説
CakeDC謹製Usersプラグインの紹介。CakePHP4で使う場合のUsersのカスタマイズとして入力項目のバリデーションの変更を、プラグインのファイルは触らずオーバーライドにより実装する方法を解説する。
-
-
CakePHP4で定数の設定と呼び出し方法の解説(defineとConfigure)
CakePHP4で定数を設定、使用する方法を解説。定数定義はdefineとConfigureを使用する方法を解説。また、bootstrap.phpに直接記述する方法と別のファイルにする方法を解説。
-
-
Windows環境の XAMPPを利用して CakePHPの開発する際の注意点
WindowsベースにXAMPPで環境を構築しCakePHP4を利用したWebシステムを構築する際は、大文字と小文字の違いを意識する必要がある。LinuxベースのWebサーバに移動させたときに不具合で動作しないこともある。
-
-
URL短縮サービス「TTTオンライン(https://ttt.onl)」公開
URL短縮サービス「TTTオンライン(https://ttt.onl)」を公開。メールやSNSでは使いにくい長いURLを短いURLに変換するサービス。QRコードも。Google URL Shortenerが2019年3月にサービス終了。
-
-
CakePHP3で他のテーブルのマスタテーブルからセレクトボックス(プルダウンリスト)を作る
他のテーブルのマスタのレコードからプルダウンリストを作成し、選択できるようにするサンプルプログラムと解説。ORMの設定によりデータベースの値を取得し、配列を作成し optionsに与える。
-
-
CakePHP4で現在処理しているコントローラー名、アクション名を取得する方法
CakePHP3で現在処理しているコントローラー名、アクション名を取得する方法を解説。複数の方法があるが、getParam()メソッドを使う方法が汎用性があって便利かも。