2014-06-11 58 views
1
"SELECT meta_value FROM wp_postmeta 
      WHERE post_id ='$id' 
      AND meta_key = '_product_image_gallery'" 

返回94,95,96,97,98,99,100,101,102,103,104,105凡在(從單場)

,所以我認爲,以下將返回所有行其中ID是在上面的設置,但實際上它只返回行94

選擇
"SELECT guid,post_title FROM wp_posts 
    WHERE ID IN 
     (SELECT meta_value FROM wp_postmeta 
      WHERE post_id ='$id' 
      AND meta_key = '_product_image_gallery' 
     )" 

任何人都明白爲什麼?

+1

你確定你有其他meta_values wp_posts?只要嘗試'選擇GUID,post_title從wp_posts WHERE ID = 95'並查看是否有一些數據。 –

+0

我會修改這個問題,以顯示內部SELECT返回一個值爲單行的值:「94,95,96,97,98,99,100,101,102,103,104,105」。否則它被錯誤地認爲是12個不同的行。 –

回答

1

它只返回列94,因爲字符串「94,95,96,97,98,99,100,101,102,103,104,105」到整數結果在94

脅迫這是因爲如果你的SQL是:

SELECT guid,post_title FROM wp_posts 
WHERE ID IN ("94,95,96,97,98,99,100,101,102,103,104,105") 

請注意,IN子句中只有一個字符串值,而不是12個整數。

+0

好的,所有12行都返回了? – andrew

+0

wp_postmeta中的meta_value列的類型是什麼? wp_posts中的ID列的類型是什麼? –

+0

metavalue是'longtext'並且ID是'bigint' – andrew