コードロード

エラー討伐

SQL

【SQL】LIKE検索は%を3つ以上含めてパターン検索できる

SQL

リクストされたパスを保存しているログから対象の商品IDを含むレコードを取得したいとする。 例:ログテーブル id path 1 /item_ids=5,10,24&created_at=2023-04-01 2 /item_ids=22,23,98&created_at=2023-04-12 3 /item_ids=25,36&created_at=2023-04-30 4 …

【PHP】cronで1億件のデータを移行

1億件のIoT計測データのデータ移行を行った話。 cronでやることになった背景 cronでデータ移行することになった背景はこんな感じ。 カラム名は仮です。 年ごとの計測テーブルBに保存されている、ある期間の数種類の製品の計測データを、四半期ごとの計測テー…

【SQL】ウィンドウ関数で行間比較を行う(相関サブクエリとはバイバイして可読性&パフォーマンスUP)

SQL

達人に学ぶSQL徹底指南所の学習記録です。 達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ (CodeZine BOOKS)作者:ミック翔泳社Amazon SQLで同一行内の列同士の値を比較するのはWHERE句で記述すればいいだけだが、異なる行を比較するのは工夫…

【SQL】ウィンドウ関数で行間比較を行う(相関サブクエリとはバイバイして可読性&パフォーマンスUP)

SQL

達人に学ぶSQL徹底指南所の学習記録です。 達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ (CodeZine BOOKS)作者:ミック翔泳社Amazon SQLで同一行内の列同士の値を比較するのはWHERE句で記述すればいいだけだが、異なる行を比較するのは工夫…

【SQL】HAVING句はおまけじゃない!CASE式と自己結合と組み合わせて使う

SQL

達人に学ぶSQL徹底指南所の学習記録です。 達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ作者:ミック翔泳社Amazon 要点 何を持って集合と見なすかに注目する。 集合の性質を調べるための条件の使い方 COUNT(DISTINCT col) = COUNT(col) :c…

【SQL】3値論理とNULL(NULLにいじめられないために)

SQL

達人に学ぶSQL徹底指南所の学習記録です。 達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ作者:ミック翔泳社Amazon データベースにnullが一つでも含まれれば、クエリから正しくない結果が返される可能性がある。 とりあえずこれは覚える! 3…

【SQL】ウィンドウ関数でSQL上で行間比較をやってしまう

SQL

達人に学ぶSQL徹底指南所の学習記録です。 できること 行間比較において相関サブクエリに頼っていた部分を、ウィンドウ関数で書けるようになる。 手続き型言語において、「順序づけされたレコード集合をfor文やwhile文のループで回してカレントコードを1行ず…

【SQL】CASE式で条件分岐を表現

SQL

達人に学ぶSQL徹底指南所の学習記録です。 やってること ラベルの読み替えを行なっているだけ。 要点 CASEは「式」だから、列名や定数をかける場所には常にかける 集約関数の中で使うことで、行持ちから列持ちへの水平展開が可能 逆に、集約関数を条件式に組…

【SQL】WHERE句は演算子で条件をつけなくても良い

SQL

前提 テーブル内の全レコード数を取得したかった。 id が PRIMARY キー 途中で DELETE されてるレコードもあるので id が不連続となっている。 そのため、 ORDER BY id DESC LIMIT 1 で id の値がそのままレコード数というわけにもいかなかった。 概要 今ま…

【SQL】サブクエリに「AS」でエイリアスをつけないとEvery derived table must have its own alias

やろうとしたSQL ページネーションを作ろうと思って書いたSQL SELECT * FROM (SELECT * FROM samples WHERE id < 30 ORDER BY id DESC LIMIT 1) UNION ALL SELECT * FROM (SELECT * FROM samples WHERE id >= 30 ORDER BY id ASC LIMIT 6) エラー Every deri…