2017-03-03 80 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