delhi09の勉強日記

技術トピック専用のブログです。自分用のメモ書きの投稿が多いです。あくまで「勉強日記」なので記事の内容は鵜呑みにしないでください。

MySQL

DjangoでMySQLの全文検索機能を使う

はじめに 概要 この記事はDjango Advent Calendar 2021の19日目の記事です。 本記事ではDjangoでMySQLの全文検索機能を使う方法について紹介します。前提として、DjangoはMySQLの全文検索機能を標準ではサポートしていません。従って、いくつかのノウハウが…

MySQL8系ではデフォルトで文字コードがutf8mb4に設定されている

MySQL8系では、文字コードがデフォルトでutf8mb4に設定されていることを知った。 mysql> show variables like '%char%'; +--------------------------+--------------------------------+ | Variable_name | Value | +--------------------------+----------…

MySQLでCASE式を使うUPDATE文を使うと複合ユニーク制約を回避できるのか検証

概要 SQLでは、以下のようにCASE式を使うと1回のSQL実行で複数のUPDATEを実行することができる。 UPDATE article_image_url SET display_order = ( CASE id WHEN 1 THEN 2 WHEN 2 THEN 3 WHEN 3 THEN 1 END ) WHERE id in (1, 2, 3); MySQLでこれを使うと複…

MySQLのカラムの文字列長について(TEXT型、LONGTEXT型)

概要 クローラーで取得したHTMLコンテンツをMySQLに保存する際に、深く考えずにカラムタイプをTEXT型にしていたら、「Data too long for column」が発生した。 環境 MySQL 5.7.30 原因 MySQLのTEXT型の最大長は65,535(約6万)文字とのこと。また、以下のよう…

Dockerコンテナ上のMySQLにホストOSから接続できなくて調査・対応したのでメモ

事象 公式のMySQLのDockerコンテナ上のMySQLにホストOS(Mac)から接続しようとしたところ、以下のようなエラーが発生して接続できなかったので、対応をメモしておく。・エラーその1 ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (61)エ…