$ wpdb-> get_results:如何返回单行中的所有数据?

时间:2015-07-14 19:49:22

标签: wordpress

这是我的疑问:

global $wpdb; 
$result = $wpdb->get_results( "SELECT NAME_MYCOLUMN FROM NAME_TABLE");
foreach ( $result as $row ) 
{
    $data = "$row-> NAME_MYCOLUMN|";  
}
$val = "'/\b($data)\b/i'"; 
echo $val;

我明白了:

'/\b(word1|)\b/i' 

其中word1是最后一个值。

相反,我想有这个:

'/\b(word1|word2|word3|word4|.......)\b/i'

我的目标是让所有列值不仅仅是最后一列。

谢谢大家,但提出的三个解决方案效果不佳。结果是一样的 :( 在我的表中有超过一百个单词,但我有:

'/\b(word1|word2|word3|word4|word5|word6|word7|word8|

有解决方案吗?

修改

我明白错误在哪里。我不小心将数字添加到数据库中作为ID9< word9和this(<)在ID为8的单词之后打破了代码

3 个答案:

答案 0 :(得分:0)

global $wpdb; 
$result = $wpdb->get_results( "SELECT NAME_MYCOLUMN FROM NAME_TABLE");
$val = "'/\b("; 
foreach ( $result as $row ) 
{
  $val .= "$row-> NAME_MYCOLUMN|";
}
$val .= ")\b/i'"; 

echo $val;

答案 1 :(得分:0)

您可以使用$wpdb->get_col来获取值数组。然后使用implode将其加入|

global $wpdb; 
$result = $wpdb->get_col( "SELECT NAME_MYCOLUMN FROM NAME_TABLE");
$data = implode('|', $result);
$val = "'/\b($data)\b/i'"; 

答案 2 :(得分:0)

您可以使用GROUP_CONCAT返回单行中的所有行

$result = $wpdb->get_results( "
     SELECT 
     GROUP_CONCAT(NAME_MYCOLUMN SEPARATOR '|') as NAME_MYCOLUMN 
     FROM NAME_TABLE
");