きり丸の技術日記

技術検証したり、資格等をここに残していきます。

SQL

SQLで同姓同名が何人・何種類あるかを知りたい(重複レコードの存在とどのレコードかを知りたい)

SQLの小ネタ。 レコードが1:Nの関係のときに、Nが一定数以上のレコードが存在しうるか、存在する場合はどのようなレコードかを知りたいことがありました。 今回の記事ではユースケースとして分かりやすいように、usersテーブルからnameのうち同姓同名が何人…

SQLで条件が一致しないレコードを特定する(NOT EXISTS)

小ネタ。 特定の条件に一致するレコードを取得するのはINNER JOIN等を使う方法は知ってましたが、一致しないレコードを取得する方法を知らなかったのでメモします。 環境 MySQL 8 実装 NOT EXISTSを使えば条件一致しないレコードを特定できます。逆に条件一…

SQLで複合したキーの検索条件でIN句検索する(複合、複数の組み合わせで条件検索)

1組の乱太郎、2組のきり丸、3組のしんべヱの情報が欲しい、といった組と名前の両方をキーにした検索をしたい時があります。 この記事では、単純にANDで結合できず、複数の条件を組み合わせた複合でのキーを検索条件として実行する方法を記載します。 環境 My…

MySQLでSQLの使用時に変数を使用する(Not PL/SQL)

タイトルのとおり、MySQLのSQLで変数が使えないか検証したときのメモです。 基本的に変数を使おうとすると、PL/SQLの記事に誘導されてしまうことが多かったです。しかし、素のSQLで変数を使用した検索するための記事があるとうれしいため、この記事を残しま…

OracleのFOR UPDATEの排他ロックを解除する

既に同様の記事がありますが、自分の備忘録として残しておきます。 トランザクションをCOMMITしたり、ROLLBACKしたりすると、FOR UPDATEで行ったロックが外れます。しかし、デバッグしながら動作検証する等々でCOMMITもROLLBACKもせずに処理を終了してしまう…

Postgresで1つ前のレコードを取得する方法

※ 参考にした記事を見たら実装方法がわかる駄文です。 新規性は作りたかったけど無いです。 基本的には、Postgresで特定のレコードの1つ前のレコードを取得する方法については、こちらのかたの参考記事を見ていただければわかります。 www.atroom.info 参考…