Geschachtelte Abfrage innerhalb des logischen Operators oder nicht in der Meta-Abfrage

Ich habe das schon seit Stunden versucht und ich habe gesucht und habe keine Ahnung bekommen. Ich versuche, eine verschachtelte Abfrage mit OR Operator als Eltern und AND Operator als Kind darunter zu machen. Die Seite wird weiter geladen und die Ergebnisse werden nicht angezeigt. Auf der anderen Seite, wenn ich AND als Eltern mache, funktioniert es. Hier ist mein Code:

 $compare_array = array( 'relation' => 'OR', array( 'relation' => 'AND', array( 'key' => 'property_size', 'value' => '15', 'type' => 'numeric', 'compare' => '=' ), array( 'key' => 'property-type', 'value' => 'marla', 'type' => 'CHAR', 'compare' => 'LIKE' ) ), array( 'relation' => 'AND', array( 'key' => 'property_size', 'value' => '15', 'type' => 'numeric', 'compare' => '=' ), array( 'key' => 'property-type', 'value' => 'Kanal', 'type' => 'CHAR', 'compare' => 'LIKE' ) ) ); $meta_query[] = $compare_array; 

Solutions Collecting From Web of "Geschachtelte Abfrage innerhalb des logischen Operators oder nicht in der Meta-Abfrage"

Ich kann von oben sehen, dass Sie bereit sind, folgende Sache zu tun.

Holen Sie sich alle Post, wenn property_size ist 15 und property-type ist marla OR Kanal .

Die SQL wird like %marla% OR like %Kanal% das entspricht like %marla Kanal% das macht keinen großen Unterschied (ich nehme an)

So können Sie diese Abfrage auf diese Weise minimieren

 $compare_array = array( 'relation' => 'AND', array( 'key' => 'property_size', 'value' => '15', 'type' => 'numeric', 'compare' => '=' ), array( 'key' => 'property-type', 'value' => 'marla Kanal', 'type' => 'CHAR', 'compare' => 'LIKE' ) ); 

In meinem Test reduziert es die Abfragezeit um 428 ms

SQL- like ist teuer, wenn Sie also einen exakten Wert haben, dann verwenden Sie IN mit einem Array von Werten.

 array( 'key' => 'property-type', 'value' => array('marla', 'Kanal'), 'type' => 'CHAR', 'compare' => 'IN' )