質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

解決済

2回答

662閲覧

order by の条件指定をcakephpのクエリビルダで実装する記述の仕方がわからない

bow551

総合スコア13

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

0クリップ

投稿2023/03/24 05:51

実現したいこと

order by の条件指定をcakephpのクエリビルダで実装したい

前提

cakephp3
PostgreSQL

発生している問題・エラーメッセージ

下のようなSQLを発行したいが、なかなかやらないのか調べても出てきません
select * from table order by カラム = 値 DESC

該当のソースコード

$table->find()->select()->orderDesc(***)
***部分に条件を入れるのだと思ってます

試したこと

$concat = $table->func()->concat(['カラム' => 値]);
として***に入れるのはorder by (値)となり上手くいきませんでした

よろしくお願い致します

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

newExpr()->eq('カラム',値)で等式を成立させ、orderDesc(***)に当てはめました。

投稿2023/03/29 06:21

bow551

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

公式を確認しました。
そこに記載されていた記述では以下のようになります。

sql

1$query = $articles 2 ->find() 3 ->select(['id', 'name']) 4 ->where(['id !=' => 1]) 5 ->order(['created' => 'DESC']);

なので回答としては
->order(['カラム名' => 'DESC'])でいけるのではないかと思います。

参考: https://book.cakephp.org/3/ja/orm/query-builder.html

投稿2023/03/24 06:05

koji9412

総合スコア158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bow551

2023/03/29 06:19

ありがとうございます。 こちらの方法では通常のorder by カラム descになってしまい、order by カラム = 値 DESCが実現できませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問