多くのチェックボックス、ラジオ、選択リスト変数などを含む、絶えず変化するフォームコンテンツを通じて送信された値に基づいて入力されるテーブルがいくつかあるデータベースがあります...
フォームの各要素には、Q1、Q2、Q3 などの一意の ID が添付されています。ユーザーが情報をチェックしたものは何でも、データベースに追加されます。
情報が挿入される「送信」テーブルは次のようになります。
doc_id ques ans other final
1 Q1 1 blah 1
1 Q2 5 1
1 Q2 6 1
3 Q3 1 blah
4 Q4 8
1 Q6 1375228800 1
ユーザーが Q1 を 1 に設定し、Q2 を 5 に設定してすべてのドキュメントを取得したい場合は機能しますが、日付が指定されている場合は機能しません。
検索条件はその場で変更できます。「ans」フィールドに「1375228800」の Unix タイムスタンプが表示されるなど、タイムスタンプで結果をフィルタリングしようとする場合を除いて、ほとんどの場合は機能します。
次に例を示します。
SELECT doc_id FROM submission
WHERE (ques IN ('Q1') AND ans IN ('1'))
AND (ques IN ('Q2') AND ans IN ('5'))
AND (ques = 'Q6' AND ans >= '0' AND ans <= '1375228800')
AND final = '1'
GROUP BY doc_id
タイムスタンプ部分を追加する場合を除いて機能します...この場合、Q6の値は1375228800です。
これを機能させる最良の方法は何ですか?