Mysql order by:跳过零到列表末尾

PHP*_*PHP 2 php mysql sql-order-by zero

$query = "SELECT products.*, login1.* 
          FROM products LEFT JOIN login1
               ON products.id_user = login1.id_user
          WHERE products.product LIKE '".$search_keyword."'
          ORDER BY products.product, products.rate "
Run Code Online (Sandbox Code Playgroud)

使用此查询时,首先列出费率为 0 的产品,但我希望最后显示该产品,订单中没有其他更改。我怎样才能做到这一点。

Aii*_*ias 6

尝试这个:

$query = "
  SELECT products.*, login1.*
  FROM products
  LEFT JOIN login1 ON products.id_user = login1.id_user
  WHERE products.product LIKE '" . $search_keyword . "'
  ORDER BY IF(products.rate = 0, 1, 0), products.product, products.rate "
Run Code Online (Sandbox Code Playgroud)

这会向排序顺序添加初始检查,以便比率为0的产品列在比率不等于 的所有产品之后0