我有这段代码:
$policy_id = $wpdb->get_results($wpdb->prepare("SELECT meta_value FROM wp_frm_item_metas WHERE field_id=%d AND item_id=%s", 203, $row->id));
我怎么检查是否有重复值?
答案 0 :(得分:0)
不是在检索数据后检查重复项,而是可以要求mysql不再重复:
SELECT DISTINCT meta_value FROM wp_frm_item_metas WHERE field_id=%d AND item_id=%s
答案 1 :(得分:0)
根据您(不太清楚......)的需求,有多种解决方案。
如果您只想知道单个meta_value发生的频率,可以使用GROUP BY meta_value
。
SELECT
meta_value, COUNT(meta_value) as count
FROM wp_frm_item_metas
WHERE field_id=%d AND item_id=%s
GROUP BY meta_value
结果您将获得两列meta_value
和count
(包含meta_value的计数出现次数)
如果您只想要多次出现的meta_values
,则可以使用HAVING
扩展查询
SELECT
meta_value, COUNT(meta_value) as count
FROM wp_frm_item_metas
WHERE field_id=%d AND item_id=%s
GROUP BY meta_value
HAVING count(meta_value) > 1
如果您只想要唯一的meta_values,也可以使用DISTINCT
,而不是GROUP BY
SELECT
DISTINCT meta_value
FROM wp_frm_item_metas
WHERE field_id=%d AND item_id=%s