2022-03-31T06:30:21.080Z
Web
[MySQL]○年と○日 という日付指定がしたかった話。
どもです。
MySQLにて、「現在の日付から1年」~「現在の日付から1年と1週間」という条件でのデータ取得が行いたくなりました。
で、調べてみたところ、この○年と○日、あるいは○ヵ月と○日、といった指定方法は、MySQLにはクリティカルなものが存在しないらしい。
PostgreSQL、Snowflakeなどでは可能らしいですが、いずれもMySQLではできませんでした。
ということで、不格好ですが... 全文を読む »
UTC->JST 日時変換(TとかZとかついてる日時のやつ)
wkhtmltopdfで全角1字・半角0.5字で表示できなかったときの話。
どもです。
wkhtmltopdfで大苦戦したので備忘。
出力する文字数の制限がとても厳しいPDFの作成。
全角を1字、半角を0.5字とカウントし、○字×○行ピッタリに仕上げなければなりません。
こういう場合はMSゴシック(ド安定の印刷用フォント)やIPAゴシック(機種依存文字でちょっとズレる)などの等幅フォントを指定してやれば解決です。... 全文を読む »
[MySQL]INSERT ... ON DUPLICATE KEY UPDATE 構文を SELECT UPDATE ... GROUP BY で使う
[MySQL]該当レコード群の最新1件のみをUPDATE
どもです。毎度の備忘的記事。
WHERE指定した条件でUPDATEを行いたいけれど、更新対象はその条件の最新1レコードのみにしたい。
という場合、連番のIDや更新日時など、どのレコードが最新なのか判断基準になるカラムがあれば、簡単に可能という話。
UPDATE [対象テーブル]
入力・選択した内容を同一フォーム内の別inputに転写する。
文字列をUTF-8に変換、UTF-8BOMだったらBOMを取る。
某所からDLしたTSVファイルがさあ!
SJISだったりUTF-8だったりUTF-8BOMだったりころっころ文字セット変えてくるのよ! 断りなく!!
ということで、文字セットを判別してUTF-8に変換、UTF-8BOMだったらBOMを取るだけの関数備忘録。
function
長大な文字列でpreg_match()したらマッチするはずなのにマッチしない場合、backtrack_limitに抵触している可能性がある話。
どもです。
件名の通り、数MBの文字列をpreg_match()するというトンデモ行為をせにゃならず。
その結果、マッチするはずなのに「0」をreturnされてしまいました。
この原因が「バックトラックリミット」でした。という話です。
バックトラックリミットとは?
... 全文を読む »[MySQL]頭文字で GROUP BY して COUNT
どもです。
やりたかったことは件名の通りなのですが、ググってもなかなか出てこなかったので備忘録的に記録しておくことにします。
SELECT SUBSTRING([対象カラム], 1,
[PHP]受信したメールがMIMEエンコードされている場合。
[PHP]受信したメールの件名が文字化けしている場合。
どもです。
PHPにて、自身のサーバからメールを取り込んでなんやかんやする旧いシステムの改修を行っていました。
すると、届いたメールの本文が文字化けしておりました。
↓
条件によって条件式を変えたかった話。
ifで分岐させる二つの処理が9割共通する場合
PDOで大量のデータをSELECTしたらメモリリークになったので、非バッファモードで実行する。
どもです。
PHP7時代のMySQL利用といえばPDOですが、PDOを用いて大量のデータを取得しようとしたところ、メモリリークが発生しました。
[MySQL]レコードが存在するテーブルを抽出
どもです。
テーブルがたくさんあるけど、使われていないテーブルもたくさんあるDBで、使われている=レコードが存在するテーブルのみ抽出したかった。
参考:
[Qiita]MySQLで全テーブルのレコード数を一覧表示する
これWHEREに追記したらレコードが存在するテーブルだけ抽出できそうですね。... 全文を読む »
jsのalert()に一律で音を追加する。
どもです。
次に必要になったときに忘れてそうなので、備忘しておきます。
参考:
[Qiita]既存の関数の呼び出しをフックする方法
[Syncer]クリックすると音が鳴るボタンの作り方... 全文を読む »
MySQLの実行順に関するぼやき。
某解説サイトにSQLの実行順
①FROM
②WHERE
③GROUP BY... 全文を読む »
MySQL-PHP-HTML の文字列保存・表示備忘録
どもです。
textareaやinputで自由入力できるようにすると、クォーテーションや特定のhtmlタグを入れたときに、処理や表示がバグったり、クロスサイトスクリプティングの被害に遭ったりします。
回避のための処理をいちいち調べるのも面倒なので、備忘的にまとめておくことにします。
PHP←→MySQL
//PHP→MySQL
MySQLは比較法を変更しないと大文字小文字を区別しない話
どもです。
一般的なプログラム言語では、アルファベットの大文字小文字は別の文字として扱われます。
が、MySQLでは同じ文字として扱われます。
そういえば僕も可読性が上がるので、普段から「select」でなく「SELECT」といった書き方をしています。
さて、今回はこの仕様をすっかり忘れていたおかげで嵌ってしまった話です。... 全文を読む »
MySQLの行の並びってキーの昇順だったのか。
どもです。
重複不可のコードの羅列が欲しかったので、プライマリキーのみのMySQLテーブルを作りました。
すると、特に登録時にソートをした覚えがないのに、テーブルの中の値がキーの昇順で入っているようです。
ORDER BY ... 全文を読む »