2012-10-18 73 views
0
SELECT meta_value 
FROM wp_postmeta 
WHERE meta_key = "bid_resource_lat" 
AND meta_key = "bid_resource_lng" 

我試圖在一個查詢中選擇兩行,就像你上面看到的......並且我無法將我的頭圍繞爲什麼這不是工作...SQL:嘗試在一個查詢中選擇兩個元值

而我將如何確保兩個結果在一行內組合在一起?

+0

你想要這個元數據的特定職位,或所有職位? – eggyal

回答

0

你需要「或」作爲邏輯是你想象中的錯誤方式。

SELECT meta_value FROM wp_postmetaWHERE meta_key = "bid_resource_lat" OR meta_key = "bid_resource_lng" 

說明:

你想獲得一個行,如果關鍵是第一或者如果它是第二個。這最多返回兩行。您編寫它的方式需要匹配這兩個條件。

「我想要一輛車是意大利或昂貴」 - 你可以得到一輛法拉利,一輛奔馳車和一輛菲亞特 「我想要一輛汽車,是意大利人,看病貴」 - 你可以得到法拉利

+0

謝謝!你會不會知道我該如何將它們組合在一起?而不是將它們作爲單獨的行查詢? – dcolumbus

+0

您可以在一個結果集中找到兩者。您將需要一個while循環來導航行。這裏的示例http://www.php.net/manual/en/pdostatement.fetch.php(在示例中搜索「while」)如果您使用的是PDO,但其邏輯與其他庫類似。 – Robbie

+0

也許你可以幫助我解決這個問題的更多擴展版本:http://stackoverflow.com/questions/12945702/sql-complicated-select-statement-and-returned-radius – dcolumbus

0

你想使用一個OR條件,而不是一個AND條件:

SELECT meta_value 
FROM wp_postmeta 
WHERE meta_key = "bid_resource_lat" 
OR meta_key = "bid_resource_lng" 

您的查詢無法返回任何行,因爲你問其中meta_key列等於記錄"bid_resource_lng""bid_resource_lng",這顯然不會發生,因爲一行在meta_key列中只有一個值。

0
meta_key = "bid_resource_lat" AND meta_key = "bid_resource_lng" 

上面永遠不會是TRUE。使用OR代替 meta_key不能同時出現bid_resource_lat和bid_resource_lng。