mysql - WP 中的 SELECT 查询问题 - 计算字符串在数据库中出现的次数

标签 mysql select

我在 postmeta 表中有 meta_key 作为 first_group_class,它的值已序列化,我无法使用 WP_Query 。因为我想知道 postmeta 表中所有元值中重复的特殊字符串(例如:'#23#')的数量。

注意:考虑到我们甚至可以在一个元值中包含该特殊字符串中的多个。
我已经使用了以下内容,但不能算作:
事实上我想计算该字符串在数据库中出现的次数。

<?php
$mysql_query = "
    SELECT *
    FROM {$wpdb->prefix}postmeta
    WHERE meta_key = 'first_group_class'
    AND meta_value LIKE '#23#'
";

$countstar = $wpdb->get_results( $mysql_query );

echo 'count: ' . count( $countstar ) . '<br>';

我该如何解决这个问题?

最佳答案

我无法通过 SELECT 查询找到解决方案,但我用另一种方式解决了它:

$post_ids = get_posts( array('fields' => 'ids', 'post_type' => 'class') );
foreach($post_ids as $post_id) {
      $postmeta = serialize(get_post_meta( $post_id, $key = 'first_group_class', true ));
      $count= substr_count($postmeta ,"#23#");
      $sum+= $count;
}
echo '<br>count= '.$sum.'<br>';

关于mysql - WP 中的 SELECT 查询问题 - 计算字符串在数据库中出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53804389/

相关文章:

mysql - 无法在 Azure mySQL 中创建函数/存储过程

sql - 就性能而言,NATURAL JOIN是否比SELECT FROM WHERE更好?

c# - 在 SQLite 上只执行 SELECT 命令

mysql - 如何选择中值?

mysql - 如何获取过滤数据的总和

mysql - 如果行存在于 MySQL 的另一个表中,则从一个表中删除行

mysql - 在 R 中编写冗长的 SQL 查询

mysql - 条件 SQL 选择 : when select has a value select all but the smallest date

mysql - NHibernate 和 MySql 关键字

php - 如何在 laravel blade 的 for-loop 中设置值