【发布时间】:2014-04-30 01:54:17
【问题描述】:
我想用一些 ID 数组过滤我的 SQL 查询。
所以我有 ID,例如:2,3,4 和 activity_meta.value 1,2,5;
我想找到它在activity_meta.value 中具有 id 的每一个活动
SELECT DISTINCT a.*, u.user_email, u.user_nicename, u.user_login, u.display_name
FROM wp_bp_activity a
LEFT JOIN wp_users u
ON a.user_id = u.ID
INNER JOIN wp_bp_activity_meta
ON (a.id = wp_bp_activity_meta.activity_id)
WHERE a.is_spam = 0
AND a.hide_sitewide = 0
AND a.type != 'activity_comment'
AND (wp_bp_activity_meta.meta_key = 'activity_tagz' )
DESC LIMIT 0, 20
我要加AND (1,2,3 IN wp_bp_activity_meta.meta_value)
我只是不知道如何处理序列化数组;
【问题讨论】:
-
所以你有 id 作为数组?
-
其实这是用逗号分隔的字符串
-
啊这很简单,那就用
wp_bp_activity_meta.meta_value IN (1,2,3) -
IN会起作用吗?这更好,因为 wordpressMeta_Query支持(当FIND_IN_SET不支持时)。有没有性能差异 -
@Mpa4Hu 第一次尝试很快就会到来 - 好的答案需要一些思考:)
标签: php mysql sql arrays wordpress