Php mysql:选择UsingLike操作符,并按列名对结果排序
但我希望输出首先按类别列出行,然后按标题和说明列出行。 有没有不用union的 提前谢谢 例如:Php mysql:选择UsingLike操作符,并按列名对结果排序,php,mysql,sql,Php,Mysql,Sql,但我希望输出首先按类别列出行,然后按标题和说明列出行。 有没有不用union的 提前谢谢 例如: $qry="SELECT * FROM `tbl_postad` WHERE category LIKE '% $car %' OR title LIKE '% $car %' OR text LIKE '% $car %'"; 您可以尝试以下方法: ORDER BY CASE WHEN category LIKE '% $car %'
$qry="SELECT *
FROM `tbl_postad`
WHERE category LIKE '% $car %'
OR title LIKE '% $car %'
OR text LIKE '% $car %'";
您可以尝试以下方法:
ORDER BY CASE WHEN category LIKE '% $car %' THEN 0
WHEN title LIKE '% $car %' THEN 1
WHEN description LIKE '% $car %' THEN 2
END
您可以使用
like
as=`进行同样的思考:
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运算符不知道确切的字符串我不明白,你可以使用与like
相同的字符串变量来表示你的order by
,对吗?再想一想,我想我可能理解你的意思,在这种情况下,在orderby
中也使用like
。是的,兄弟,实际上我在like运算符中使用了一个变量,我错过了$符号
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;
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;