Catch-all arama MySQL sorgusu bina

0 Cevap php

Biraz böyle loooks bir potansiyel olarak büyük bir tabloda arama bir yumuşak, catch-all türlü gerçekleştirmek için SQL sorguları oluşturur bazı kodlar var

// $find_array derived from search string with space or comma used as a delimiter
foreach($find_array as $term){
    $clauses[]="(  
        OR last_name SOUNDS LIKE '$term'
        OR first_name SOUNDS LIKE '$term' 
        OR first_name LIKE '%$term%' 
        OR email SOUNDS LIKE '$term' 
        OR email LIKE '%$term%'                     

               [etc...]

        OR city LIKE '%$term%' 
        OR company SOUNDS LIKE '$term' 
        OR company LIKE '%$term%' 
    )";
}

Bu bunu yapmanın çok yanlış bir yol olabilir, ama ben o zaman mantıklı sanırım.

Sorguları baktığımızda bu olsa üretir - onlar, hatta arama terimleri üzerinde sınırları ile, elbette, yaklaşık bir kilometre uzunluğunda ve ameliyathanelerinde ile çevrili bulunmaktadır. Bu çeşit bir suçtur - performans açısından veya başka?

Bu mümkün IN yan tümcesi kullanmak daha iyidir?

0 Cevap