我的数据库中有2个表。
表1 = wp_bibliography,存储有关期刊文章的信息
+------------+---------+
| post_id | title |
+------------+---------+
| 1 | Nature |
| 2 | Science |
| 3 | Neuron |
+------------+---------+
表2 = wp_term_relationships,存储不同的标签术语
+------------+---------+
| object_id | tag_id |
+------------+---------+
| 1 | 106 |
| 2 | 108 |
| 3 | 106 |
+------------+---------+
post_id和object_id相关。
我想创建一个多选复选框,以便我可以返回108或106或两者的结果。例如,如果我检查106和108,我将返回post_id 1、2、3,如果我选择106,我将返回post_ids 1和3,如果我选择108,我将返回post_id 2。
<div class="list-group-item checkbox">
<label><input type="checkbox" value="106" >106</label>
<label><input type="checkbox" value="108" >108</label>
</div>
在提交时运行的查询(确实有效)如下,但需要使其动态化(我可以这样做),下面的示例是用户同时选择了106和108。
SELECT *
FROM wp_bibliography x
JOIN wp_term_relationships y
ON y.object_id = x.post_id
WHERE y.term_taxonomy_id IN(106,108)
GROUP BY post_id HAVING COUNT(*) = 2
我的问题是这是做我想要的最好的方法吗?请注意,我上面的多选复选框将具有多达20个值,例如
HAVING COUNT(*) = 20
是否有更有效,更好的方法?