我面对有关mysql orderby排序的一个非常奇怪的行为,我正在尝试按照在运行时首先计算的3,4行具有最低值的费用范围从高到低对记录进行排序,然后order by生效,并进一步所有记录均按预期排序,我是否缺少任何东西?
这是我正在运行的查询SELECT `ddd`.`ID`, CONCAT(ddd.title, " ", ddd.name) AS name, `ddd`.`url`, `ddd`.`doc_gender`, `ddd`.`edu_degrees`, TRIM(BOTH ", " FROM ddd.specializations) AS specializations, `ddd`.`tel_appointments`, CONCAT("https://s3-eu-west-1.amazonaws.com/mdpk/images/profile-pics/doctors/", ddd.profile_image) AS profile_image, `ddd`.`yearsofexperience`, IF(MIN(IF(daas.fee > 0, `daas`.`fee`, NULL)) = MAX(IF(daas.fee > 0, `daas`.`fee`, NULL)), MIN(IF(daas.fee > 0, `daas`.`fee`, NULL)), CONCAT(MIN(IF(daas.fee > 0, `daas`.`fee`, NULL)), "-", MAX(IF(daas.fee > 0, `daas`.`fee`, NULL)))) AS fee_range, `dhdtl`.`locality`, `dhdtl`.`city`, `ddd`.`star_rating`, `ddd`.`is_paying`, `ddd`.`divert_to_cc`, `ddd`.`patient_records`, IF(MAX(daas.allow_online_booking + daas.has_active_subs) = 2, 1, 0) AS is_bookable, MAX(daas.has_active_subs) AS has_active_subscription, `ddd`.`verified_patients`, `ddd`.`average_wait_time`, (ddd.positive_reviews + ddd.negative_reviews) AS total_reviews, IF(ddd.verified_patients > 0 AND
ddd.positive_reviews + ddd.negative_reviews > 0 AND
ddd.positive_reviews + ddd.negative_reviews > 0 AND
(ddd.is_paying = 1 OR 1 = 0), ROUND(ddd.positive_reviews * 100 / (ddd.positive_reviews + ddd.negative_reviews), 0), 0) AS recommendation_percentage
FROM `doc_doc_details` AS `ddd`
JOIN `doc_specialization_relation` `dsr` ON `dsr`.`user_id` = `ddd`.`ID`
JOIN `doc_hosp_doctor` `dhd` ON `ddd`.`ID` = `dhd`.`user_id`
JOIN `doc_app_adv_settings` `daas` ON `dhd`.`hospital_id` = `daas`.`subs_id` AND `daas`.`prov_id`=`ddd`.`ID`
JOIN `doc_hospital_details` `dhdtl` ON `dhd`.`hospital_id` = `dhdtl`.`hosp_detail_id`
WHERE `dhdtl`.`country_id` = 1
AND `dhdtl`.`city_id` = '1'
AND `dsr`.`specialization_id` IN('72')
AND `ddd`.`published` = 1
GROUP BY `ddd`.`ID`
ORDER BY `has_active_subscription` DESC, MAX(fee_range) DESC, `ddd`.`manual_web_rank`, `ddd`.`computed_web_rank`, `dhd`.`is_primary` DESC
LIMIT 20
这里是结果
对此问题的任何帮助将不胜感激