簡體   English   中英

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM