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