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

オプティマイザと実行計画

データベースがSQLを受け取って処理を実行する前には下記のような段階があります。 Contents1 パーサー2 オプティマイザ3 カタログマネージャー4 参考リンク パーサー SQL構文のチェックし …

no image

DBUtils活用 その2

以前DBUtilsの活用を書きましたが、他の使い方がわかったのでメモ 以前はSelectでList<エンティティ>を取得したのですが、List<Map>でも取得できます。 ソー …

no image

外部結合 応用編

本日は「達人に学ぶSQL徹底指南書」の外部結合の応用編です。 下記のような3つのテーブルがあるとします。例によってここを使わしてもらってます。 tblsex sex_cd | sex —& …

no image

正規化について&EXTRACT

Contents1 正規化とは?2 第一正規化3 SQLネタ EXTRACT 正規化とは? 正確な定義は難しいですが、8割ぐらいあっている定義としては「適切なテーブルに分割すること」です。※ただし正確 …

no image

CASE式のすすめ

SQL実践入門を7割がたぐらい終えたところで同著者の方の「達人に学ぶSQL徹底指南書」を学習しようと思っています。 この方の著書は気づいたら結構読んでましたね。 Contents1 CASE式での注意 …

アーカイブ