複数の選択を有効にして、HTML 選択入力を使用しています。選択したオプションを調べて、SQL を処理しようとしています...ただし、選択ステートメントが正しい場合は、SQL から警告が表示されます。 JOIN が制限を超えているため、"SET SQL_BIG_SELECTS = 1" を使用する必要がありますか?
これが私のクエリです:
"
SELECT wposts.*, wpostmeta.*
FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta, $wpdb->postmeta wpostmeta2, $wpdb->postmeta wpostmeta3
WHERE wposts.ID = wpostmeta.post_id
AND wposts.ID = wpostmeta2.post_id
AND wposts.ID = wpostmeta3.post_id
AND wpostmeta.meta_key = 'listing_subtype'
AND wpostmeta.meta_value = '$search_home_type'
AND wpostmeta2.meta_key = 'map_area'
AND ";
$count = 0;
foreach ($params['search_map_area'] as $map_area) :
if ( $count != 0 ) :
$querystr .= "OR ";
endif;
$querystr .= "wpostmeta2.meta_value = '$map_area' ";
$count++;
endforeach;
$querystr .= "AND wpostmeta3.meta_key = 'price_current'
AND wpostmeta3.meta_value BETWEEN $search_price_min AND $search_price_max
AND wposts.post_status = 'publish'
AND wposts.post_type = 'vreb_property'
ORDER BY wposts.post_date DESC
LIMIT 0, 20
";
これを照会するより良い方法はありますか? OR wpostmeta2.meta_value = '$map_area'
私のスクリプトがタイムアウトする原因と思われるのは倍数です...