Я использую поисковую систему «solr» для запроса индекса для объявлений, соответствующих заданным критериям. Результатом являются ID: номера объявлений, которые я затем использую, чтобы найти все совпадения в базе данных MySql с этими идентификаторами: s. Идентификатор: возвращенные элементы помещаются в массив.MySql отображение результатов в том же порядке, независимо от того, «массив-порядок»
Как вы можете видеть ниже, массив взорван. Затем я использую «IN», чтобы найти все совпадения.
$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 - категория, выбранная пользователем, в данном случае позволяет говорить, что это «автомобили».
Моя проблема заключается в следующем:
У меня есть ID: числа в порядке (внутри массива), но MySql doens't «заботу» об этом заказе. MySql отображает самый старый пункт первый, независимо от того, в каком порядке массив находится в
Так вот один и тот же запрос отображается с двумя различными «массив направлений»:.
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')
Как вы можете увидеть ID: s меняются во втором запросе выше ... Но они все равно отображаются в том же порядке в любом случае. Зачем?
Должен ли я использовать какой-либо другой способ найти все совпадения в MySql с ID: s из массива?
Идеи?
Благодаря