为了账号安全,请及时绑定邮箱和手机立即绑定

搜索然后对值进行排序

搜索然后对值进行排序

PHP
一只名叫tom的猫 2023-07-08 17:54:10
我尝试使用条件搜索值,然后对所有可用值进行排序。但是当我排序时,所有值都被重置。这是我选择 mysql 。 SELECT * FROM tbProduct WHERE name = '%ASUS%' 返回值是 1 - Asus TUF, 5 - Asus zep, 7 - Asus 然后我单击排序 mysql 返回 SELECT * FROM tbProduct ORDER BY id DESC。但不是:SELECT * FROM tbProduct WHERE name = '%ASUS%' ORDER BY id DESC 返回值是 9 - Asus TUF, 8 - Linux, 7 - Asus, 6 - MSI, 5 - Asus zep, 4 - MacBook, 3 - DELL, 2 - ACER, 1 - Asus 有什么方法可以对搜索结果进行排序吗?如果您有想法请告诉我。谢谢
查看完整描述

2 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

从您的问题来看,您似乎在获取结果后单击排序。这会运行另一个查询,而前一个查询会丢失。

要获得所需的结果,您必须在第一个查询本身中使用 Sort 语句。

这意味着你必须跑。

SELECT * FROM tbProduct WHERE name = '%ASUS%' ORDER BY id DESC;

位列第一。不要期望在任何基于 GUI 的数据库交互中运行一个查询,然后运行另一个查询,并希望它将从新查询中返回结果的子集。


查看完整回答
反对 回复 2023-07-08
?
子衿沉夜

TA贡献1828条经验 获得超3个赞

假设你的id价值观是这样的:


9 - Asus TUF

您可以尝试仅使用数字部分进行排序:


SELECT *

FROM tbProduct

WHERE name = '%ASUS%'

ORDER BY CAST(SUBSTRING_INDEX(id, ' ', 1) AS UNSIGNED);


查看完整回答
反对 回复 2023-07-08
  • 2 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信