我有非常复杂的元查询,分为两部分。每个部分单独工作正常,但当我比较两个部分或它应该显示两个结果的组合,但它没有显示任何东西。
第一段摘录
array(
'relation' => 'AND',
array(
'relation' => 'AND',
array(
'key' => 'range1_min',
'value' => floatval($_GET['m']),
'type' => 'DECIMAL',
'compare' => '<='
),
array(
'key' => 'range1_max',
'value' => floatval($_GET['m']),
'type' => 'DECIMAL',
'compare' => '>='
)
),
array(
'relation' => 'AND',
array(
'key' => 'range1_min',
'value' => floatval($_GET['n']),
'type' => 'DECIMAL',
'compare' => '<='
),
array(
'key' => 'range1_max',
'value' => floatval($_GET['n']),
'type' => 'DECIMAL',
'compare' => '>='
)
)
);
第二段摘录
array(
'relation' => 'AND',
array(
'relation' => 'AND',
array(
'key' => 'range2_min',
'value' => floatval($_GET['m']),
'type' => 'DECIMAL',
'compare' => '<='
),
array(
'key' => 'range2_max',
'value' => floatval($_GET['m']),
'type' => 'DECIMAL',
'compare' => '>='
)
),
array(
'relation' => 'AND',
array(
'key' => 'range2_min',
'value' => floatval($_GET['n']),
'type' => 'DECIMAL',
'compare' => '<='
),
array(
'key' => 'range2_max',
'value' => floatval($_GET['n']),
'type' => 'DECIMAL',
'compare' => '>='
)
)
);
单独他们两个都工作正常,但当我把它们与“OR”条件放在一起时,它们无法正常工作。
完整代码段
array(
'relation' => 'OR',
array(
'relation' => 'AND',
array(
'relation' => 'AND',
array(
'key' => 'range1_min',
'value' => floatval($_GET['m']),
'type' => 'DECIMAL',
'compare' => '<='
),
array(
'key' => 'range1_max',
'value' => floatval($_GET['m']),
'type' => 'DECIMAL',
'compare' => '>='
)
),
array(
'relation' => 'AND',
array(
'key' => 'range1_min',
'value' => floatval($_GET['n']),
'type' => 'DECIMAL',
'compare' => '<='
),
array(
'key' => 'range1_max',
'value' => floatval($_GET['n']),
'type' => 'DECIMAL',
'compare' => '>='
)
)
) ,
array(
'relation' => 'AND',
array(
'relation' => 'AND',
array(
'key' => 'range2_min',
'value' => floatval($_GET['m']),
'type' => 'DECIMAL',
'compare' => '<='
),
array(
'key' => 'range2_max',
'value' => floatval($_GET['m']),
'type' => 'DECIMAL',
'compare' => '>='
)
),
array(
'relation' => 'AND',
array(
'key' => 'range2_min',
'value' => floatval($_GET['n']),
'type' => 'DECIMAL',
'compare' => '<='
),
array(
'key' => 'range2_max',
'value' => floatval($_GET['n']),
'type' => 'DECIMAL',
'compare' => '>='
)
)
)
);
非常感谢任何帮助。
答案 0 :(得分:0)
当我生成wordpress的sql查询并在phpmyadmin上运行时,它会生成错误并说我已超出默认联接设置,这意味着在我的查询中我有太多的加入。
我已经通过在wordpress查询之前手动输入此sql查询来解决此错误。
global $wpdb
$wpdb->query("SET SQL_BIG_SELECTS = 1");