エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


CakePHP4、5でSELECT telephone as tel FROM usersの様にasでカラムに別名を付ける方法

      2025/10/25

CakePHP4、5のクエリビルダーを使用してカラムに別名を付与する方法

 

SQLでカラムに別名を付与して値を取得する方法

 
SQL文で、取得するカラム名と違う別名を付けて値を取得する場合は、下記のように「as」を使用してカラムの別名を指定します。
 

 
上記の例は、usersテーブル内のカラム名は「telephone」ですが、短い「tel」という別名に変更して取得します。
 
 
CakePHP4、CakePHP5で、この「as」を使用してカラムの別名を指定する処理の実装方法を解説します。
 
 

CakePHP4、5のクエリビルダーを使用してカラムに別名を付与する方法

 
下記は、基本的な処理であるテーブル内のカラム名である「telephone」として値を取得する処理です。
 

 
 
これに対して、「telephone」のカラムの値を「tel」として取得する場合は、「$select」に指定している配列のキーとして「tel」を指定すれば OKです。
 

 
 
仕組みが分かっていれば非常に簡単です。
 
 

CakePHP4、5のクエリビルダーを使用してカラムに別名を付与する際の注意点

 
処理自体は特に問題なく簡単なのですが、いろいろ試してみた結果、「as」で指定する項目名には「-(ハイフン)」を使用することができない、ということが分かりました。
 

 
具体的には上記の「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

 
その理由は、「-」は SQLでも使用する四則演算子(マイナス、減算演算子)であるため、演算をしようとしていると解釈されてしまうため、「Syntax error or access violation」となるのです。
 
そのため、同じ四則演算子である「+(プラス)」「*(アスタリスク)」「/(スラッシュ)」「=(イコール)」も同様のエラーが発生します。
さらに、プログラムで演算子として使用される「%」「!」「&」「()」などの記号はすべて同様にエラーとなります。
 
また、「tele-phone」を囲う「"(ダブルクオーテーション)」を「'(シングルクォーテーション)」に変えてもエラーが発生する状況に変化はありませんでした。
 
エラーとならなかったのが「_(アンダースコア)」です。
記号でエラーにならないのはこの「_(アンダースコア)」だけだと思います。
 
ご注意ください。
 
 

CakePHP5の関連記事

CakePHPのpostlinkで生成した削除リンクをクリックしても処理が実行されない対処法
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」に関する記事一覧
 
 

 - CakePHP 3.x 4.x 5.x

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

CakePHP 2.3でファイルのアップロード処理を作る

CakePHPでプラグインを使わないファイルアップロード処理を解説します。簡単です。DBにファイルを格納する方法も。

CakePHP4、5のユーザ認証でID、PASS以外の削除フラグなども条件加える方法
CakePHP4、5のユーザ認証でID、PASS以外の削除フラグなども条件加える方法

CakePHP4系、5系ではAuthenticationを使用してログイン認証を行う。その認証でID、PASS以外の削除フラグなどの条件を加えたいときの対応方法について解説。

getParam('action')で取得するアクション名は別関数に移動しても不変
getParam('action')で取得するアクション名は別関数に移動しても不変

CakePHP4系、5系では「getParam()」で処理中のアクション名を取得できる。そのアクションから別関数を呼び出してた関数でアクション名を調べたが同一の名称だった。

CakePHP 2.3 Search Pluginで検索処理 その2表示件数を動的に変える方法

CakePHPの検索プラグイン Search Pluginの検索処理の中で動的に表示件数を変える方法です。

CakePHP3でパンくずの指定は HTMLヘルパーを使って指定する方法を解説
CakePHP3でパンくずの指定は HTMLヘルパーを使って指定する方法を解説

CakePHP3でパンくずの指定方法の解説。2つのヘルパーがあるが簡単なHTMLヘルパーを使った方法を、実際の状況に合わせて3つのパターン(エレメント化、ブロック化)にして解説。

CakePHPのpostlinkで生成した削除リンクをクリックしても処理が実行されない対処法
CakePHPのpostlinkで生成した削除リンクをクリックしても処理が実行されない対処法

CakePHP環境にてpostLinkで生成した削除のリンクをクリックしても処理が実行されず、JavaScriptでUncaught TypeErrorが発生。原因は同一IDを複数記述していることだった。

CakePHP4で「app_local.php」「.env」を利用して環境ごとの定数を振り分ける方法
CakePHP4で「app_local.php」「.env」を利用して環境ごとの定数を振り分ける方法

CakePHP4で.env、app_local.phpに定数を定義してそれを呼び出す方法の解説。Gitでは管理せず本番環境と開発環境とで異なる定数を定義するためそれを利用する方法。

CakePHP 2.x系 Viewでのコメントの記述方法など

CakePHPにおいて View、ctpファイルでコメントを記述する方法を解説。

CakePHP3のプラグイン「CakeDC/Users」を日本語化・翻訳ファイルもダウンロード可
CakePHP3のプラグイン「CakeDC/Users」を日本語化・翻訳ファイルもダウンロード可

CakePHP3のユーザ管理、ログイン認証プラグインである「CakeDC/Users」のメッセージを日本語にする手順の解説とともに、日本語の翻訳ファイルを提供。ファイルを設置すれば日本語になる!

CakePHPのバリデーションを入力値・項目の条件によって変える方法を解説
CakePHPのバリデーションを入力値・項目の条件によって変える方法を解説

入力された値によってバリデーション(入力チェック)の内容を切り替える。その処理をCakePHPで実装する方法を解説。条件ごとに unset関数を使ってバリデーションを削除する、という方法を採る。