MySQL:选择“使用 like 运算符”并按列名对结果进行排序


mysql: select using like operator and order the result by column name

<?php

编辑:抱歉错过了$。 语法错误 - 正常

$qry="SELECT * 
      FROM `tbl_postad` 
      WHERE category LIKE '% $car %'
        OR title LIKE '% $car %' 
        OR text LIKE '% $car %'";

但我希望输出首先按类别列出行,然后按标题列出,然后按描述列出。有没有不使用工会提前谢谢。

例:

 id category title description   
  1    car 
  2    car
  3            car
  4            car
  5            car
  6                    car

?>
ORDER BY CASE WHEN category LIKE '% $car %' THEN 0
              WHEN title LIKE '% $car %' THEN 1
              WHEN description LIKE '% $car %' THEN 2
         END

你可以像下面这样尝试:

SELECT * 
FROM `tbl_postad` 
WHERE category LIKE '%car%' OR title LIKE '%car%' OR description LIKE '%car%'
ORDER BY (category LIKE '%car%') DESC,
     (title LIKE '%car%') DESC,
     (description LIKE '%car%') DESC;
您可以使用

=' 的 like 做同样的想法:

SELECT * 
FROM `tbl_postad` 
WHERE category LIKE '% car %' OR title LIKE '% car %' OR text LIKE '% car %'
ORDER BY (category LIKE '% car %') DESC,
         (title LIKE '% car %') DESC,
         (text LIKE '% car %') DESC;

根据您的示例数据,我假设您打算OR而不是AND