我嘗試使用條件搜索值,然后對所有可用值進行排序。但是當我排序時,所有值都被重置。這是我選擇 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 關注
- 154 瀏覽
添加回答
舉報
0/150
提交
取消