カテゴリー: SQL

SQL, システム設計

親子カテゴリのDB設計

この記事の紹介する方法だと、仕様で階層が深くなるようになったとしても対応できます。 こういうデータがあったとする categories   id, parent_id, name 1, 3, カテゴリ1 2, null, カテゴリ2 3, 2, カテゴリ3 4, null, カテゴリ4 5, 3, カテゴリ5   階層を表すとこう 3-1-5 2-3-5 4   SQL &nb …

MySQL, トラブルシューティング

MySQLデッドロック ロックしているスレッドを殺す

(none)> SELECT * FROM sys.innodb_lock_waits\G ***************************[ 1. row ]*************************** wait_started | 2020-05-25 06:26:01 wait_age | 0:00:13 wait_age_secs | 13 locked_table …

RDB, SQL

EXISTSとINの使い分け【SQL】

  EXISTSとINは場合によって使い分ける。 間違うと遅くなる…🐱 結論として 従属表の選択性が高い場合 → 従属表から先に絞り込むIN 従属表の選択性が低い場合 → 主表から先に絞り込むEXISTS 両方の選択性が低い場合 → EXISTS 本の検索による例   世界の本のデータベース bookを主表、book_categoryを従属表とする 主表 bookテ …

MySQL, SQL

SQL グループの中で最新の日付のデータを取得する MySQL

●tb_user_section user_id section_id created 1 1 2020-05-11 20:00:00 1 2 2020-05-12 20:00:00 1 3 2020-05-13 20:00:00 2 1 2020-05-15 20:00:00 3 2 2020-05-18 20:00:00 3 4 2020-05-19 20:00:00 user_idのグループ …

SQL

Laravel クエリスコープを使おう!🐱 Query Scope

ORM?流行りものでしょ SQLで良くね?😨 → クエリスコープで保守しやすくなるぞ🐱 ●抽象的に内容がわかるから保守性アップ ●条件分岐と組みあわせてクエリの組み立ての柔軟性 ●コードが短く目と頭にやさしい#駆け出しエンジニア #プログラミング初心者 https://t.co/5sbnGp5iYW — 優さん🌷わくわく開発YouTuber (@yuu13n6) May 16, 2020 まずはS …

MySQL, SQL, PHP

Laravel SQLを実行 ヒアドキュメント クロス集計

手の込んだ集計などはSQLで取った方がシンプルになることも多い ヒアドキュメントを利用して記述するのが良いですね🐱 <?php namespace App\Services; use App\Services\Service; use Illuminate\Support\Facades\DB; class GetsectionParentGoalService extends Servic …

SQL

WordPressドメイン, HTTPSからHTTPに変更するSQL

  WordPressも春めいてきましたね!😊 暖かさにうきうきしてドメインを変えてみたくなったり ALBを利用したくなって HTTPSから薄手のHTTPに衣替えする季節になってきました そんな春の訪れを感じるクエリ🐱🌸https://t.co/DYEWSw0Ufx#WordPress#progate#駆け出しエンジニアと繋がりたい   — 優さん🌷わくわく開発YouTuber (@yu …

MySQL

MySQL xxx doesn’t have a default value

MySQL5.6以降から規約が厳しくなった。 SQLを改善する MySQLの設定で緩める     今回はMySQLの設定を緩めることで対応   /etc/my.cnf sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES ↓ sql_mode=NO_ENGINE_SUBSTITUTION   対応 $ systemct …

SQL

Laravel Exists SQL孫テーブルのレコードがあるかチェック

    sections.id = 4 && companys.master_id = 1のレコードが存在するのかチェックする例を示します。 SQL select exists( select * from `sections` inner join `contents` on `contents`.`id` = `sections`.`content_id` inner …

SQL

SQL 同じテーブルのレコードの列に別の列の値で更新する

  全件のカラム2の値をカラム1に代入して更新する例   UPDATE テーブル名 SET テーブル名.カラム1 = テーブル名.カラム2     具体例 実際使う時は、条件を指定することが多い。 UPDATE administrators SET administrators.login_info = administrators.remarks WHERE adm …