在没有Foreach()的情况下选择单列时,如何从$wpdb->GET_RESULTS获得仅取值的平面数组?

时间:2020-11-07 作者:Artem

我的问题是:

$var = $wpdb->get_results("SELECT field FROM {$wpdb->prefix}table", ARRAY_A);
var_dump($var);
它返回类似于数组(2){[0]=>;数组(1){[“字段”]=&燃气轮机;字符串(5)“”;测试1“}[1] =>;数组(1){[“字段”]=&燃气轮机;字符串(t)“”;测试2“}。一、 e.每个项目都是一行,具有单个名称-值对。

我想要的是数组(2){[0]=>;string(5)";test1";[1]=>;string(5)";test2";}

目前我是这样实现的:

$var = $wpdb->get_results("SELECT field FROM {$wpdb->prefix}table");
foreach($var as $v_key => $v_val) $var[$v_key] = $v_val[\'field\'];
var_dump($var);
有没有较短的方法可以做到这一点?

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

是的,有。

如果只想从数据库表中检索一列,即该列的所有行值,可以使用wpdb::get_col().

$values = $wpdb->get_col( "SELECT field FROM {$wpdb->prefix}table" );
foreach ( $values as $value ) {
    // your code
}

相关推荐

控制台中来自wpdb查询的奇怪字符串

我使用此代码: $search = $this->wpdb->prepare(\"WHERE (name LIKE %s OR tag LIKE %s)\", \'%\'. $this->wpdb->esc_like($word) .\'%\', \'%\'. $this->wpdb->esc_like($word) .\'%\'); 在控制台中,我得到:name LIKE \'{4b9ad9b602bd32ff99324feebaa1883bb3a3e