应该可以这个 SELECT id,IF(score1>score2,score1,score2)score FROM( SELECT id ,IF(LOCATE('北京市',a),aa,0) + IF(LOCATE('天津市',a),aa,0) AS score1 ,IF(LOCATE('崇文区',b),bb,0) + IF(LOCATE('南开区',b),bb,0) AS score2 FROM f WHERE ((a LIKE '%北京市%') OR (a LIKE '%天津市%') OR (b LIKE '%崇文区%') OR (b LIKE '%南开区%')) )f2 ORDER BY score DESC
转到MySql版块
SELECT id,IF(score1>score2,score1,score2)score
FROM(
SELECT id
,IF(LOCATE('北京市',a),aa,0) + IF(LOCATE('天津市',a),aa,0) AS score1
,IF(LOCATE('崇文区',b),bb,0) + IF(LOCATE('南开区',b),bb,0) AS score2
FROM f
WHERE ((a LIKE '%北京市%') OR (a LIKE '%天津市%') OR (b LIKE '%崇文区%') OR (b LIKE '%南开区%'))
)f2
ORDER BY score DESC