【发布时间】:2024-05-23 23:05:01
【问题描述】:
我进行了一次搜索,基本上是查询自定义元字段并显示结果。出于某种原因,搜索需要数小时。当我将关系更改为“AND”时效果很好,但是当我将关系更改为“OR”时它就死了。
目前在数据库中我有 5 条记录,所以应该不需要时间。
这是查询
$args = array(
'post_type' => 'shipping-schedules',
'posts_per_page' => 5,
'post_status' => 'publish',
'paged' => $paged,
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'schedules_port',
'value' => $sfrom,
'compare' => 'LIKE'
),
array(
'key' => 'schedules_port',
'value' => $sto,
'compare' => 'LIKE'
),
array(
'key' => 'schedules_vessel',
'value' => $svessel,
'compare' => 'LIKE'
),
array(
'key' => 'schedules_voyage',
'value' => $svoyage,
'compare' => 'LIKE'
),
array(
'key' => 'schedules_arrival',
'value' => $sdate_arrival,
'compare' => '>=',
'type' => 'NUMERIC'
),
array(
'key' => 'schedules_departure',
'value' => $sdate_departure,
'compare' => '<=',
'type' => 'NUMERIC'
)
)
);
正如您在上面的查询中看到的,这条线 'relation' => 'AND' 将其更改为 'relation' => 'OR' 将导致问题面临查询缓慢的问题。
【问题讨论】: