我尝试使用条件搜索值,然后对所有可用值进行排序。但是当我排序时,所有值都被重置。这是我选择 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 的数据库交互中运行一个查询,然后运行另一个查询,并希望它将从新查询中返回结果的子集。
子衿沉夜
TA贡献1828条经验 获得超3个赞
假设你的id价值观是这样的:
9 - Asus TUF
您可以尝试仅使用数字部分进行排序:
SELECT *
FROM tbProduct
WHERE name = '%ASUS%'
ORDER BY CAST(SUBSTRING_INDEX(id, ' ', 1) AS UNSIGNED);
- 2 回答
- 0 关注
- 119 浏览
添加回答
举报
0/150
提交
取消