IN
比较运算符来比较post meta key中的序列化数组值?
序列化数组是数字,我想使用.container {
width: 100px;
height: 100px;
overflow: scroll;
}
来比较值。
感谢。
答案 0 :(得分:0)
首先,您无法对序列化数据运行IN检查,因为Mysql将其视为字符串。但是,您可以运行LIKE查询以检查值是否在那里。
以下可能不是一个完美的解决方案,但它应该可以解决问题。
if (count($attribute) == 1) {
$query['ps_attributes_array_check'] = array( 'key' => 'ps_attributes_array_check', 'value' => "\"$attr\"", 'compare' => 'LIKE' );
} else if (count($attribute) > 1) {
$query['ps_attributes_array_check']['relation'] = 'OR';
foreach($attribute as $attr) {
$query['ps_attributes_array_check'][] = array( 'key' => 'ps_attributes_array_check', 'value' => "\"$attr\"", 'compare' => 'LIKE' );
}
}
<强>更新强>: 如果将属性ID保存在单独的行中而不是序列化数据,则可以运行以下查询:
'meta_query' => array(
array(
'key' => 'ps_attributes_array_check',
'value' => $attribute,
'compare' => 'IN'
)
)