0

我需要从 wp_usermeta 上的 wp_ul_locked 计算值 1 的数量我试试这个代码

$wpdb->get_var("SELECT COUNT(*) WHERE 'meta_key' LIKE 'wp_ul_locked'");

或者

$wpdb->get_var("SELECT COUNT(*) FROM $wpdb->usermeta WHERE meta_key = '1'");

或者

$wpdb->get_var("SELECT COUNT(*) FROM $wpdb->usermeta LIKE 'wp_ul_locked' WHERE meta_value = '1'");

在这种模式下,所有 wp_ul_locked 的返回计数不仅值 1

$wpdb->get_var("SELECT COUNT(*) FROM $wpdb->usermeta WHERE meta_key LIKE 'wp_ul_locked' = '1' ");

但返回空或错误

表格示例

我的错误在哪里?

4

2 回答 2

5

好吧...您的每个测试查询都有一个错误:

$wpdb->get_var("SELECT COUNT(*) WHERE 'meta_key' LIKE 'wp_ul_locked'");

你错过了FROM

$wpdb->get_var("SELECT COUNT(*) FROM $wpdb->usermeta WHERE meta_key = '1'");

这将返回空,的值meta_key是 never1

$wpdb->get_var("SELECT COUNT(*) FROM $wpdb->usermeta LIKE 'wp_ul_locked' WHERE meta_value = '1'");

这行不通,你LIKEWHERE

$wpdb->get_var("SELECT COUNT(*) FROM $wpdb->usermeta WHERE meta_key LIKE 'wp_ul_locked' = '1' ");

这行不通

我猜正确的查询将是这个:

$wpdb->get_var("SELECT COUNT(*) FROM $wpdb->usermeta WHERE meta_key = 'wp_ul_locked' AND meta_value = '1' ");

我将 LIKE 更改为等于,但您可以LIKE在此处放置 a 而不是等于meta_key = 'wp_ul_locked'

于 2013-10-02T13:32:08.573 回答
4

你的查询是错误的。尝试这个:

$wpdb->get_var("SELECT COUNT(*) from $wpdb->usermeta WHERE meta_key LIKE 'wp_ul_locked' AND meta_value=1 ")
于 2013-10-02T13:30:09.323 回答