0
对于Wordpress项目,我想将多个查询合并为一个使用子查询。我正在使用MySQL 5.5.42。第一种情况是查询表wp_categories
中的member_ids
列表,然后使用结果列表查询wp_postmeta
表中的post_id
列中的匹配ID。Mysql按子查询返回的列表查询
我所拥有的就是这个至今
SELECT post_id
FROM wp_postmeta
WHERE meta_value IN (
SELECT member_ids
FROM wp_categories
WHERE id=140)
AND meta_key='bizid'
这似乎是空手而归,不过,当我与一个有效的值替换子查询,我得到有效的结果。
编辑: 这个答案已经离开我与查询解决方案(https://stackoverflow.com/a/22375303/1817379):
SELECT post_id, meta_key
FROM wp_postmeta, wp_categories
WHERE wp_categories.id = 140
AND FIND_IN_SET(wp_postmeta.meta_value, wp_categories.member_ids)
AND wp_postmeta.meta_key ='bizid'
另外,感谢@ sa289的线索:原来的子查询返回一个字符串,而不是一个列表, IN子句不会处理的东西。
嗯,子查询的作品,当我手动插入值我得到一个有效数量的结果。 – lintuxvi
@lintuxvi我已更新我的答案,以包含新的可能性 – sa289
member_ids * does *在列表中有多个值。谢谢你的提示!经过一番搜索,我遇到了这个突出的答案:http://stackoverflow.com/a/22375303/1817379。我仍然想知道为什么当子查询与IN子句一起使用时,列表成为问题。 – lintuxvi