Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql:选择UsingLike操作符,并按列名对结果排序_Php_Mysql_Sql - Fatal编程技术网

Php mysql:选择UsingLike操作符,并按列名对结果排序

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 %'

但我希望输出首先按类别列出行,然后按标题和说明列出行。 有没有不用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 %' 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;