skillup

技術ブログ

Database

checkboxでの値の管理

投稿日:

formにてcheckboxの値を一つのカラムにいれて管理する機会があったのですが、これ入力更新出会っても検索であっても処理がなかなか厄介です。特に検索の時ですね・・・

要するに値の候補が1,2,3,4だとしてデータとして値1,3が入っているとします。

そして検索画面では1,2がチェックされ含まれている値は?となった時、

とりあえず現状の対処法としては、

  • 文字列にしてカンマ区切りで保存(厳密にやりたい場合はSET型でもいいかも)
  • でもってFIND_IN_SETで値を1つ1つ検索

とやっていました。ただこの方法だとindexが効きませんので検索のスピードを上げたい時には向きません。

そんな時ですが、2進法の考え方を利用して、値を保存してあげると検索効率が上がります。(実際の実装については要調査)

 

-Database

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

NULLについて

「達人に学ぶSQL徹底指南書」を読み進めていきましたがNULLについていろいろ書いてあるのでメモリます。 Contents1 NULLには未知と適用不能の2パターンがある2 = NULL が使えず I …

no image

JPAでのリレーション(アノテーション使用)

JPAでリレーションを管理するとき、最初はアノテーションでやろうとしたんですが、結局やり方がわからずコンストラクタ式をかいて対処してました。 JPAでのリレーションに関して 外部キー制約があるやり方は …

no image

MYSQL group_concat,cast等

実務でいろいろとトラブルがあり、データベースから在庫データを見てくれ~なんて依頼がありましたんでSQLをごりごり書いていたんですが、普段使わないようなSQLの構文を使ったのでここでちょっと紹介します。 …

no image

cake sql系+リレーション+ヘルパー

先月末に引き続いてcakeネタをもりっといきます。 といっても自分用の小ネタリンク集です。 Contents1 sql系の小ネタ1.1 findとread1.2 find(‘count&# …

no image

SQLクエリ比較

クエリの比較 SQLにおいては全く同じ結果を返すのであってもその検索結果が異なるということはよくあります。 例えば下記のようなテーブルがあった場合 co_cd | district —&# …