MySQL LIKE搜索无法在数组中找到值

时间:2017-08-22 14:57:58

标签: php mysql wordpress sql-like

我正在构建一个Wordpress网站,在search.php文件中,我正在尝试执行此MySQL查询:

$boards_id = $wpdb->get_col($wpdb->prepare(
    "SELECT $wpdb->terms.term_id
    FROM $wpdb->terms, $wpdb->term_taxonomy, $wpdb->termmeta
    WHERE $wpdb->terms.name LIKE %s
    AND $wpdb->terms.term_id = $wpdb->term_taxonomy.term_id
    AND $wpdb->terms.term_id = $wpdb->termmeta.term_id
    AND $wpdb->term_taxonomy.taxonomy = 'board'
    AND $wpdb->term_taxonomy.description != ''
    AND $wpdb->termmeta.meta_key = 'category'
    AND $wpdb->termmeta.meta_value LIKE '%Dads%'
    ORDER BY $wpdb->terms.name ASC
    LIMIT $limit, $boards_per_page"
    , '%' . get_search_query() . '%'
    )
);

我遇到的问题是这个查询条件不起作用:

AND $wpdb->termmeta.meta_value LIKE '%Dads%'

在MySQL结构中,meta_value类型是longtext。数据库中的每个meta_value都包含这样的数组:

a:1:{i:0;s:4:"Dads";}

在我的问题排查中,如果我更改了'%爸爸%'%',那么搜索只会产生正确的结果。到了爸爸'并将:1:{i:0; s:4:" Dads&#34 ;;}在MySQL中改为:Dads

0 个答案:

没有答案