MySql到Wordpress查询

Fed*_*l09 0 mysql wordpress

我需要在wp_usermeta上计算来自wp_ul_locked的值1的数量我尝试此代码

$wpdb->get_var("SELECT COUNT(*) WHERE 'meta_key' LIKE 'wp_ul_locked'");
Run Code Online (Sandbox Code Playgroud)

要么

$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'");
Run Code Online (Sandbox Code Playgroud)

在此模式下,返回所有wp_ul_locked的计数,而不仅仅是值1

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

但返回空或错误

表的例子

我的错误在哪里?

Sal*_*00m 5

嗯...您的每个测试查询都有错误:

$wpdb->get_var("SELECT COUNT(*) WHERE 'meta_key' LIKE 'wp_ul_locked'");
Run Code Online (Sandbox Code Playgroud)

你错过了 FROM

$wpdb->get_var("SELECT COUNT(*) FROM $wpdb->usermeta WHERE meta_key = '1'");
Run Code Online (Sandbox Code Playgroud)

这将返回空,值meta_key永远不会1

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

你放在LIKE前面这不行WHERE

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

这不行

我想这是正确的查询:

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

我用相同的方式改变了LIKE,但你可以LIKE在这里放一个而不是相等meta_key = 'wp_ul_locked'