I am using "solr" search engine to query an index for classifieds that match a given criteria. The results are the ID:numbers of the classifieds, which I then use to find all matches in a MySql database with those ID:s. The ID:s returned are put into an array.
As you can see below the array is imploded. Then I use the "IN" to find all matches.
$solr_id_arr_imploded = implode("', '", $solr_id_arr);
$query = "SELECT mt.*, $sql_tbl.* FROM classified mt LEFT JOIN $sql_tbl ON
$sql_tbl.classified_id = mt.classified_id WHERE mt.ad_id IN ('$solr_id_arr_imploded')";
$ Sql_tbl kullanıcı tarafından seçilen kategori, bu durumda "araba" olduğunu söylüyorlar sağlar.
My problem is this:
I have the ID:numbers in an order (inside the array), but MySql doens't "care" about this order. MySql displays the oldest item first no matter what order the array is in.
Yani burada iki farklı "dizi-yön" ile gösterilen bir aynı sorgu:
SELECT mt.*, fordon.* FROM classified mt LEFT JOIN fordon ON fordon.classified_id = mt.classified_id WHERE mt.ad_id IN ('Bmw_520i_Svensksald_784332731', 'Bmw_M3_Svensksald_755599519', 'Bmw_M3_E46_Full-utrustad_338210082')
SELECT mt.*, fordon.* FROM classified mt LEFT JOIN fordon ON fordon.classified_id = mt.classified_id WHERE mt.ad_id IN ('Bmw_M3_E46_Full-utrustad_338210082', 'Bmw_M3_Svensksald_755599519', 'Bmw_520i_Svensksald_784332731')
Eğer kimliğini görebileceğiniz gibi: s Yukarıdaki ikinci sorguda iptal edilir ... Ama yine de her durumda aynı sırayla görüntülenir. Neden?
S bir dizi: Ben tüm MySQL bulma diğer bazı yöntem ID ile eşleşen kullanmalı mıyım?
Fikirler?
Teşekkürler