整数型フィールドの「0」と「NULL」について | Community
Skip to main content
Akiyuki_Nishika
Level 2
December 18, 2017

整数型フィールドの「0」と「NULL」について

  • December 18, 2017
  • 6 replies
  • 286 views

皆さま


初めて投稿させていただきます、デザインワン・ジャパンの西川と申します。

小ネタ程度の話ですがせっかく先日のユーザー会でも「積極的に投稿してください」とのことでしたので投稿してみます。

以下、本題です。

先日スマートリストを使っていて気が付いたのですが、整数型のフィールドをスマートリストで「指定の値と等しい:0」で設定すると、当該フィールドが「0」のものと「NULL」(空)のものが両方含まれるようです。

この設定だと

こうなる

整数型のフィールドの値が「0」のものだけ取得する(「NULL」のものは取得しない)という設定をしたい場合は「指定の値と等しい:0」に加えて「空でない」という設定をする必要があるようです。

この設定で

こうなる

マーケティングの部門に異動してきてMarketoを使うようになる前は、PHPでサーバーサイドの開発をやっていたので「言われてみれば確かにあり得るな…」と思ったものですが、「プログラミングなんかやったことないよ!」という方には想像もつかない話かもしれませんね。

「0」と「NULL」(空)を同じものとして扱うのが正しいかどうかはいったん置いておいて、整数型のフィールドを使ってスマートリストを組んでいる方はぜひ一度点検してみてはいかがでしょうか。

※文中画像は弊社インスタンスで動かした際の画面のキャプチャに加工を施したものです。

追記

「既出じゃないかなこのネタ…」と公開ボタンを押す前に気になって調べてみたら英語圏のフォーラムには出ているようですね。ご参考までに…。

Does '0' = NULL?

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.

6 replies

Ayako_Ando1
Level 2
December 19, 2017

西川さま、はじめまして。株式会社ルシダスの安藤と申します。

今まで0とNULLをあまり気にしていませんでしたが、こうやって改めて検証して頂くとなるほどな、と思いました。

ゼロはゼロで、NULLはNULL。個人的には別物と思っていたので気にとめることもありませんでしたが、

こうやって気付いて頂く方がいると、スマートリストの抽出がうまくひっかけられない人の助けになると思います。

NULLという言葉自体を知らない方もたくさんいるでしょうし。

小ネタ発表とてもよいと思います。ぜひ今後も投稿楽しみにしています。

Taishi_Yamada
Level 6
December 19, 2017

@Akiyuki Nishikawa さん、こんにちは

>>先日のユーザー会でも「積極的に投稿してください」とのことでしたので投稿してみます。

ありがとうございます

>>「プログラミングなんかやったことないよ!」という方には想像もつかない話かもしれませんね

"プログラムなんてやったことないよ!"の方が多勢なので、実はその前に

「NULLって何ですか?発音は?なる?ぬる?ぬーる?」(ちなみに発音は"ヌル"です)

から始まるんですよね。

そして、プログラム経験者だと、西川さんのような疑問に当たります。

また、データベース経験者だと、「なぜ、NULLをこうも許容する?」とフラストレーションが貯まるパターンもあります。

あと、既に値が入っているフィールドを、どうやって"NULL"にするのですか?というのもFAQの1つですね(リンクはっておきます)

フィールド値を消去する - Japanese - Product Documentation

-Yamada

Akiyuki_Nishika
Level 2
December 19, 2017

@亜弥子 安藤​ さん、はじめまして。コメントありがとうございます。

「PHPでサーバーサイドの開発をやっていた」とは言ったものの、

かくいう私もふとした拍子に「あれっ、思ってるより数が多い…」となって初めて気が付きました。

今後もまた何か発見したら投稿させていただきます。今後ともよろしくお願いいたします。

Akiyuki_Nishika
Level 2
December 19, 2017

@Taishi Yamada​ さん、こんにちは。コメントありがとうございます!

また、データベース経験者だと、「なぜ、NULLをこうも許容する?」とフラストレーションが貯まるパターン

データベースはNOT NULL制約なんかをかけて、入ってくるデータに対して制御したりもしますから、このパターンも確かにありますよね。あと「空文字列」や「未定義(undefined)」などの話まで広がってくると、いよいよ技術面の知識がないとしんどいかと思いますが、そこまでマーケターが考えなくて良いようなカスタムフィールドの設計をすることのほうがもっと大事だと思う今日この頃です。

既に値が入っているフィールドを、どうやって"NULL"にするのですか?というのもFAQの1つ

先日、既に値が入っているフィールドをNULLにしようとして、全部小文字の「null」でやろうとして「なんか上手くいかないなぁ」と試行錯誤してました。「全部大文字」という縛りは意外と忘れるので要注意なポイントだと思いました。

Misaki_Oomawari
Level 2
December 21, 2017

@Taishi Yamada​ さま

いつも様々なコメント、大変勉強になっております…

ちょうど昨日、全リードの特定のフィールドをNULLにする必要が出たため

リンク張っていただいたFAQ、タイムリーで非常に助かりました。

ありがとうございました!

@Akiyuki Nishikawa​ さまも、トピックの作成ありがとうございました!

December 25, 2017

@Akiyuki Nishikawa​さん

貴重なコメントありがとうございます!!!

弊社(特に我々コンサル)にとって、とてもためになる投稿です。

ご指摘いただいた点については、注意点として今後のコンサルセッションで取り上げたいと思います。

ありがとうございました!