在MySQL中,如何对搜索结果进行排序,以显示第一个有图片的用户,然后显示其他用户

在MySQL中,如何对搜索结果进行排序,以显示第一个有图片的用户,然后显示其他用户,mysql,Mysql,我在分组和排序方面有问题 ( SELECT `subdomain` AS `id`,`name`,`lastname`,IF(`category` NOT LIKE '',`category`,0) AS `category`,`level`,`image`,`description` AS `summary`, '1' AS `type` FROM `user_professionals` WHERE `keywords`='%{$k

我在分组和排序方面有问题

(
    SELECT 
        `subdomain` AS `id`,`name`,`lastname`,IF(`category` NOT LIKE '',`category`,0) AS `category`,`level`,`image`,`description` AS `summary`, '1' AS `type`
    FROM 
        `user_professionals`
    WHERE `keywords`='%{$keywords}%' AND `active`='1' AND `search`='1' AND
        NULLIF(CONCAT(`name`, `lastname`), '') IS NOT NULL AND NULLIF(`description`, '') IS NOT NULL AND NULLIF(`category`, '') IS NOT NULL
    GROUP BY `image`, `id`
    ORDER BY `image` DESC
)
UNION
(
    SELECT 
        `id`,`name`,`lastname`,IF(`category` NOT LIKE '',`category`,0) AS `category`,`level`,`image`,`summary`, '2' AS `type`
    FROM 
        `users_amateurs` 
    WHERE `keywords`='%{$keywords}%' AND
        `on_hold`='0' AND (`level`='2' OR `level`='3') AND `register`='1' AND `banned`='0' 
    AND
        NULLIF(CONCAT(`name`, `lastname`), '') IS NOT NULL AND NULLIF(`summary`, '') IS NOT NULL AND NULLIF(`category`, '') IS NOT NULL
    GROUP BY `image`, `id`
    ORDER BY `image` DESC
)
LIMIT 100
问题: 搜索必须同时在两个单独的表中进行,这样可以在一个查询中得到一个组合结果。排序和分组需要按照以下顺序进行:

  • 具有图像的专业用户
  • 没有图像的专业用户
  • 拥有图像的业余用户
  • 没有图像的业余用户
  • 这个查询工作得很好,但问题是排序。
    谢谢