2014-02-20 52 views
0

如果在meta_value列中找到兩個值的匹配項,我希望grab user_id。例如,如果存在"tagowner"的記錄,而其他值僅爲meta_value列中的"999"如何使用AND運算符從單個列中檢索多個值

我嘗試使用IN操作爲: -

SELECT * from wp_usermeta where meta_value IN ('tagowner',999); 

,但是這也顯示了其他組也效果。我只需要"tagowner""999"的結果。

謝謝

+1

場如何能有2個值? 'tagowner'和'999' –

+1

數據庫表未標準化@AndyGee - 不是一個好的做法。似乎是一個增長的趨勢。 –

+0

我不完全理解這個問題,但是您可以使用AND運算符一次查詢多個表列。 SELECT * from wp_usermeta where meta_value = tagowner AND meta_value = 999 ;.另外,我強烈建議使用構建在方法中的單詞按鍵來檢索這些數據。 http://codex.wordpress.org/Class_Reference/WP_Query – Kyle

回答

0

如果您需要爲其中兩排都存在,你可以使用EXISTS或自user_ids加入:

SELECT * FROM wp_usermeta t1 
WHERE meta_value = 'tagowner' 
AND EXISTS (SELECT 1 FROM wp_usermeta t2 
      WHERE t2.meta_value = '999' 
      AND t1.user_id = t2.user_id) 

例如:sqlfiddle

+0

嘿D.raev,thnksssssssss很多,你的答案解決了我的問題。 – deadrockerrr

+0

很高興聽到這一點,您可以將其標記爲已接受;) –

2

meta_value是非數值類型。

SELECT * 
FROM wp_usermeta 
WHERE meta_value IN ('tagowner', '999'); 
+0

是的WordPress的meta_value是longtext,需要引號搜索! –

相關問題