タグ

2020年9月3日のブックマーク (4件)

  • postgresql NOT ILIKE clause does not include null string values

    Here's the setup on Postgresql 9.2.4: CREATE TABLE table ( id integer NOT NULL, some_text text ); Now we enter one record, with a null or empty string for some_text, so that when we query: SELECT * FROM table WHERE some_text IS NULL; I get the entry back. So far so good. However, when I query: SELECT * FROM table WHERE some_text NOT ILIKE "%anything%'; I find that nothing was returned. Why is that

    postgresql NOT ILIKE clause does not include null string values
  • SQLでサブクエリを上手に使う6パターン

    はじめまして。Souki.Tです。 SQLを書く上で、使いどころが難しいのがサブクエリです。何でもかんでもJOINして運用するのは格好わるい、サブクエリを使ったら何かカッコいい、結局サブクエリを使いすぎて訳の分からなくなり、作った自分でも手が出せなくなった経験は私だけではないはずです。今回はサブクエリを使う場面をパターンに分けて上手なつき合い方を考えてみたいと思います。 サブクエリとは何かということを説明するのは私には手に余るので誰か説明の上手な人に任せます。どこかにいい解説があったら教えてください。 サブクエリを使わない理由サブクエリの特徴を一言でいうと「重い」。ともかく重い。使い方を間違えたら劇的に重くなることはもちろんのこと、適切に使ったとしても重いものは重いです。普通にJOINで結合して解決するのであれば、使うべきではありません。 それでもサブクエリを使うパターンとはいえ、サブクエ

  • RailsのArelを調査してみた - Qiita

    RailsのActiveRecordで想定通りのSQLクエリが発行されずに辛い思いをしたので、SQLまわりのソースコードを読んでいたらArelというものに当たりました。 どうやらこれがrailsっぽくSQLクエリを書ける機能を提供しているようなので、勉強したことをまとめます。あまり細かいことは気にせずに、Arelを読み解く上での基礎を理解することが目標です。 ソースコードをちゃんと読んだ経験が少ないのでとんちんかんなこと書いてないか不安ですが、温かい目で見てもらえればと思います。 間違っている箇所あればコメント欄よりお願いします。 Arelとは ArelはActiveRecordの内側でwhereやselectのメソッドチェーンからSQLを生成する役割を担っています。またDBによってSQLの文法が若干違ったりしますが、その差異を吸収してくれるのもArelです。 rubygemsによるとAr

    RailsのArelを調査してみた - Qiita
  • ActiveRecordに限界を感じArelでサブクエリを頑張って書いてみた - Qiita

    はじめに railsを触り始めて4ヶ月が経ち、「ActiveRecordってSQLを知らなくても書けるってすごいなぁ」 と思っていた自分に変化が訪れました。その変化とは、「何でActiveRecordって全部纏めちゃうんだよ。。。」 という気持ちが芽生えたことです。 今私が扱っている案件では、「複数のテーブルから、ある条件のレコードの件数を、タイムアウトなしで取得したい」 という状態になっています。 一例ではありますが、以下のようなサブクエリを使用しないscopeを複数チェーンして、各条件の件数を取得していました。 scope :select_page_views_count, -> do left_joins(:page_views) .select("COUNT(DISTINCT page_views.id) AS page_views_count") .group("#{table_

    ActiveRecordに限界を感じArelでサブクエリを頑張って書いてみた - Qiita