搜索然后对值进行排序

我尝试使用条件搜索值,然后对所有可用值进行排序。但是当我排序时,所有值都被重置。这是我选择 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 有什么方法可以对搜索结果进行排序吗?如果您有想法请告诉我。谢谢



一只名叫tom的猫
浏览 95回答 2
2回答

拉风的咖菲猫

从您的问题来看,您似乎在获取结果后单击排序。这会运行另一个查询,而前一个查询会丢失。要获得所需的结果,您必须在第一个查询本身中使用 Sort 语句。这意味着你必须跑。SELECT * FROM tbProduct WHERE name = '%ASUS%' ORDER BY id DESC;位列第一。不要期望在任何基于 GUI 的数据库交互中运行一个查询,然后运行另一个查询,并希望它将从新查询中返回结果的子集。

子衿沉夜

假设你的id价值观是这样的:9 - Asus TUF您可以尝试仅使用数字部分进行排序:SELECT *FROM tbProductWHERE name = '%ASUS%'ORDER BY CAST(SUBSTRING_INDEX(id, ' ', 1) AS UNSIGNED);
打开App,查看更多内容
随时随地看视频慕课网APP