[英]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.