この記事の紹介する方法だと、仕様で階層が深くなるようになったとしても対応できます。 こういうデータがあったとする 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 …
カテゴリー: SQL
GROUP BYとHAVING COUNT(*) > 1で重複を探す
GROUP BY id, name HAVING COUNT(*) > 1; 重複しない検索結果を検証する方法 具体例 SELECT id, name FROM sample GROUP BY id, name HAVING COUNT(*) > 1; Amazonおすすめ iPad 9世代 2021年最新作 iPad 9世代 …
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 …
EXISTSとINの使い分け【SQL】
EXISTSとINは場合によって使い分ける。 間違うと遅くなる…🐱 結論として 従属表の選択性が高い場合 → 従属表から先に絞り込むIN 従属表の選択性が低い場合 → 主表から先に絞り込むEXISTS 両方の選択性が低い場合 → EXISTS 本の検索による例 世界の本のデータベース bookを主表、book_categoryを従属表とする 主表 bookテ …
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のグループ …
Laravel クエリスコープを使おう!🐱 Query Scope
ORM?流行りものでしょ SQLで良くね?😨 → クエリスコープで保守しやすくなるぞ🐱 ●抽象的に内容がわかるから保守性アップ ●条件分岐と組みあわせてクエリの組み立ての柔軟性 ●コードが短く目と頭にやさしい#駆け出しエンジニア #プログラミング初心者 https://t.co/5sbnGp5iYW — 優さん🌷わくわく開発YouTuber (@yuu13n6) May 16, 2020 まずはS …
Laravel SQLを実行 ヒアドキュメント クロス集計
手の込んだ集計などはSQLで取った方がシンプルになることも多い ヒアドキュメントを利用して記述するのが良いですね🐱 <?php namespace App\Services; use App\Services\Service; use Illuminate\Support\Facades\DB; class GetsectionParentGoalService extends Servic …
WordPressドメイン, HTTPSからHTTPに変更するSQL
WordPressも春めいてきましたね!😊 暖かさにうきうきしてドメインを変えてみたくなったり ALBを利用したくなって HTTPSから薄手のHTTPに衣替えする季節になってきました そんな春の訪れを感じるクエリ🐱🌸https://t.co/DYEWSw0Ufx#WordPress#progate#駆け出しエンジニアと繋がりたい — 優さん🌷わくわく開発YouTuber (@yu …
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 …
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 同じテーブルのレコードの列に別の列の値で更新する
全件のカラム2の値をカラム1に代入して更新する例 UPDATE テーブル名 SET テーブル名.カラム1 = テーブル名.カラム2 具体例 実際使う時は、条件を指定することが多い。 UPDATE administrators SET administrators.login_info = administrators.remarks WHERE adm …
SQL WHERE カラム名 IN (x, y, z, …)
基本形 SELECT * FROM users WHERE users.job_id IN (1, 6); 実際はこういう形が多いはず SELECT * FROM users WHERE users.job_id IN (SELECT jobs.id FROM jobs WHERE job_code IN (‘engineer’, ‘PM’) …