2017-03-03 77 views
1

我有一個名爲usermeta表看起來像這樣一個WordPress數據庫:SQL - 從一列依賴於另一列的值獲取數據

umeta_id | user_id | meta_key | meta_value 
1  | 1 |first_name| Matt  
2  | 1 | dob | 1970-01-15 
3  | 1 | dl_num | 10569788658 
4  | 2 |first_name| Jim 
5  | 2 | dob | 1985-07-29 
6  | 2 | dl_num | 16578984258 

我需要得到meta_value因爲如果meta_key特定用戶是'dl_num'並且需要SQL查詢來執行此操作。

我在做這樣的事情:

SELECT meta_value FROM usermeta WHERE user_id = 1 AND meta_key LIKE 'dl_num' 

我用這與WordPress的其他代碼打印出我的數據到.csv報告,並沒有在數據上拉。

以下是一段我的代碼:

case 'dl_num': 
         if ($report_user instanceof WP_User) { 
          $user_id2 = $report_user->ID; 
         } 
         if (property_exists($report_item, 'post_id')) { 
          $post_id2 = $report_item->post_id; 
         } 

         global $wpdb; 

         $myRows = $wpdb->get_row("SELECT meta_value FROM ".$wpdb->prefix."usermeta WHERE user_id = ".$user_id2." AND meta_key LIKE 'dl_num'"); 

         $column_value = $myRows; 
        break; 

有人能來看看我的SQL查詢,看看是否我缺少什麼?

回答

0

我認爲這個問題是缺乏在查詢空間:

$myRows = $wpdb->get_row("SELECT meta_value FROM ".$wpdb->prefix."usermeta WHERE user_id = ".$user_id2." AND meta_key LIKE 'dl_num'"); 

注:

  • 您應該打印出來的查詢您構建了上去。那麼答案會很明顯。
  • 你應該使用參數,那麼你就不會有這種類型的問題。
+0

所以我給SQL查詢添加了空格,它沒有任何作用。我不確定你的意思是使用參數。我的查詢有其他問題嗎?如果沒有,我相信它與代碼有關。 – MattM