BigQuery SQL の文字列分割(SPLIT)

split は、プログラマーなら誰もが馴染みのある関数で、最もよく使われる関数の 1 つといえるでしょう。BigQuery にも split がありますが、SQL であるため一般的なプログラミング言語とは使い方がかなり異なります。さらに BigQuery には Standard SQL と Legacy SQL の 2 つがあり、どちらにも split はありますが、使い方はまったく異なります。 ...

2017年9月17日 · 1 分

BigQuery SQL で指定日付から月初日・月末日を取得する

BigQuery で日付(またはタイムスタンプ、DATETIME 型)から月初日を取得したい場合、たとえば “2017-05-24” から “2017-05-01” を得たいときは、Legacy SQL では UTC_USEC_TO_MONTH 関数を、Standard SQL では DATE_TRUNC() 関数を使えます。実は BigQuery には、日付から月初日・時間・週の初めなどを取得するための関数が一式そろっています。 ...

2017年7月29日 · 1 分

BigQuery SQL でランダムに N 行を抽出する

データ分析をしていると、データからランダムに N 行を取り出す(サンプリングする)ことはよくある要件です。データが正しいかどうかを確認するためにサンプルを見る場合もあれば、データが多すぎて処理しきれないため、モデル構築用にサンプルを取る場合もあります。データベース内で SQL を使ってサンプリングするのは実はとても簡単です。ここでは BigQuery Standard SQL で説明しますが、Legacy SQL でも方法は同じです。 ...

2017年7月28日 · 1 分

PHP で基本的な SQL インジェクション対策をするには?

ここ数日、連絡先を整理する小さなプログラムを書いていたので、いろいろと調べていました。データベースを扱う部分では、パラメータに悪意のある文字列を入れてデータベースを攻撃する、いわゆる SQL インジェクションを防ぐために、基本的な対策を入れています。以下では、SQL インジェクションに対する基本的な防御方法を紹介します~ ...

2011年8月2日 · 1 分

PHP の文字列(SQL クエリ)に配列・$_POST・$_GET を直接埋め込む方法

ここ数日、小さなプログラムを書いていて問題にぶつかりました。連結演算子を使わずに、$_POST の変数を SQL クエリの文字列に直接入れたかったのです。ところが引用符の問題があって、やり方がわかるまでかなり時間がかかりました。ここでは簡単に紹介します。また、この方法を教えてくれた Bu さんと蒼時弦さんにお礼を言いたいです! お二人がいなければ、この方法は今でも知らなかったかもしれません。さらに、この方法は $_POST だけでなく、ほかの配列にも使えます。 ...

2011年8月1日 · 1 分

SQL の注意事項 - ` と ' の違い

最近、PHP でプログラムを書いている途中で SQL のコードに出会ったので、少し調べてみました。すると、初心者がよく間違えるポイントを発見しました。それは、` と ’ という二つの記号は、働きが違うということです。当時はそのことを知らず、しかも本の文字が小さかったため、この小さな問題に気づくまでに二時間もかかってしまいました……。そこで、この二つには違いがあることを皆さんに伝えるために、この記事を書きました。 ...

2011年2月11日 · 1 分