ぷっぽプログラミング備忘録

linux, javascript, php, C#, そのうちScalaとかアプリ開発とかやってみたいです。

2023-07-01から1ヶ月間の記事一覧

postgresqlでFROM側に配列を使い、規則性のあるデータを生成する

概要 UNNESTとARRAYを組み合わせたものをテーブルとして扱う 例)01,02...という内容の配列を、testTblとして扱う SELECT 'test_data_' || testTbl::text as test_val FROM UNNEST(ARRAY['01', '02', '03', '04']) AS testTbl ; 結果 test_val -------------…

Laravel collectionのkeyBy()メソッドで、pluck()と似たようなことができる

概要 Laravelで、DBテーブルの取得結果を、特定のカラムをキーとして取得したい場合、調べるとpluck()がよくでてくる。 ただ、KeyBy()でもできる。 QueryBuilderなどではget()などでいったん取得してきておいて、後から加工するほうがいいケースもありそうな…

postgresqlでmysqlのgroup_concatと同じことがしたいならstring_aggを使う

前提 postgresql バージョン9以上ぐらい? 結論 string_agg を使う 例)barテーブルのtype_idでgroup byしたときに、foo_nameカラムをカンマでひとまとめの文字列にする SELECT bar.type_id, string_agg(bar.foo_name, ‘, ‘) as foo_name_list FROM bar GROU…

vite + phaser + htmlのdomを使う

前提 viteでコンパイルしている phaser3で何か作っている phaesr3でhtmlのdomを使いたい 流れ start-dom-jsx をインストール (dom-jsx単体をインストールして設定をすればできるようですが、簡単そうなので、start-dom-jsxのほうを私は使うことにしました。…

Laravelのクエリービルダー(query builder)でLATERALを使う場合

例 DB::table('foo as f') ->leftJoin( DB::raw(" LATERAL ( SELECT MIN(goods.amount) as min_amount FROM goods WHERE foo.goods_id = goods_id ) as temp_min_amount "), DB::raw('1'), '=', DB::raw('1') ) ->select('f.*', 'temp_min_amount.min_amount…