![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
就職支援のWebSiteを作っています。
【】
//companyテーブル
company_id ----- 企業ID
company_name -- 企業名
treatment ------ 待遇情報(配列を結合させた数字だけの情報)
・・・
//treatmentテーブル
treatment_id ----- 企業ID
treatment_data -- 待遇情報(日本語での正式名称)
・・・
【待遇情報例】
交通費支給□ ボーナス有り□ 社宅・寮完備□ etc・・・
【流れと状況】
(1)
企業側が待遇データをチェックボックスで選択して登録
(2)
チェックボックスの値(配列)を連結させてtreatmentカラムに 001000111001000・・・ と言う形で格納
ここまでは出来ているのですが、検索する時複数並んだチェックボックスにチェックを入れてtreatmentカラム( 001000111001000・・・ )と比較させて、1が重なる企業だけを一覧を表示させたいのです。
※001000111001000・・・の並び順はtreatmentカラムのレコード順(treatment_id)と対応させています。
経験不足の為良い考えが浮かびません。
こう言う場合はこう言う作りをした方が良い等、そう言ったご意見でもいただければ助かります。
宜しくお願いします。
※企業(1):他カラム(多)であれば同じ格納方法~抽出まで出来ています。
No.1ベストアンサー
- 回答日時:
2進数演算のビット積を使うといいかも。
MySQL テーブルのデータが 01 羅列の文字列なら、conv関数で2進数にし、入力値の方も同様に 2進数として、ビット積 & をとる。
これだけだと、どれかの項目が1であれば引っかけてしまうので、さらに元のビット位置と全部同じか比較する。
よって、treatment の 1 のところが全部1であるものは、以下が成り立つ
where (CONV(`treatment`,2,2) & CONV('01・・入力値',2,2)) = CONV(`treatment`,2,2)
ただし、treatmentの桁数に変更がない、全て同じ桁数で入っているという前提なので、
今後、treatmentの項目数に変動があると、うまく抽出できなくなるので、項目ごとのカラムにしてしまうのも一つの方法かと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- SQL Server ACCESSで複数テーブルを結合して、リストを作る方法を教えてください。 2 2022/08/12 19:32
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- その他(ニュース・時事問題) 今は情報ブームです。将来it業界は圧倒的に人手不足となり、it人材が欲しくてたまらなくて良い待遇で人 2 2022/06/25 19:19
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- 就職 情報学部、24卒で就活真っ只中です。 当初は情報学部だから・将来性のある仕事に就きたいと思い、IT業 5 2023/06/04 16:03
- Excel(エクセル) エクセルのデータ整形について 3 2022/11/12 00:27
- 中途・キャリア 最終面接後に実施するカジュアル面談について 3 2023/07/25 14:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLで特定の項目の重複のみを排...
-
COBOL プログラミング
-
テキスト幅にあわせた表の作り...
-
初心者)DataGridViewの入力桁...
-
【VBA】特定の文字列を含む場合...
-
php mysql で WHERE句内に変数...
-
ActiveReportの書き方
-
PHP MySQL 配列データの比較
-
fgetcsvでCSVを取得した際のnul...
-
質問です How is your school l...
-
IF文、条件分岐の整理方法
-
差し込み後、元データを変更し...
-
外部参照してるキーを主キーに...
-
処理件数を非表示にしたい
-
フィルターかけた後、重複を除...
-
Access:クエリーにて集計後に...
-
Exel VBA 別ブックから該当デ...
-
エクセルで最後の文字だけ置き...
-
for whichの使い方
-
エラー 1068 (42000): 複数の主...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLで特定の項目の重複のみを排...
-
バッチでcsvファイルの指定のカ...
-
リストビューの項目の内容を変...
-
php mysql で WHERE句内に変数...
-
COBOLについて
-
fgetcsvでCSVを取得した際のnul...
-
DataGridView 右詰め
-
DataViewで複数条件の...
-
FormulaR1C1でSUMIF変数指定
-
初心者)DataGridViewの入力桁...
-
Sheet3から2つの条件でオートフ...
-
COBOL プログラミング
-
Access2000 の更新クエリでカウ...
-
ListView
-
ListViewのカラムの色の変更
-
[WHS]定数宣言の際にリテラル文...
-
google formsを使ったタスク依...
-
投稿 表示・非表示設定
-
VB2008 コンボボックスとテキ...
-
テキスト幅にあわせた表の作り...
おすすめ情報