gpt4 book ai didi

mysql - SQL先显示A列结果再显示B列结果

转载 作者:行者123 更新时间:2023-11-29 01:48:51 26 4
gpt4 key购买 nike

我希望 SQL 首先显示/排序列 name 的结果,然后最后显示 description 列的结果。

当前 SQL 查询:

SELECT * FROM products WHERE (name LIKE '%$search_query%' OR description LIKE '%$search_query%') 

我尝试在末尾添加 order by name, description [ASC|DESC] 但这没有用。

用于优化搜索结果。如果在 description 中找到某个单词,如果在 name 列中也找到了某个单词,则它应该放在最后。

最佳答案

您可以在 ORDER BY 中使用 CASE 语句来确定 name 的优先级。在下面的示例中,名称匹配的所有结果都将排在第一位,因为 CASE 语句的计算结果为 1,而所有其他结果的计算结果为 2。

根据您的问题描述,我不确定您到底想要什么样的行为,但您当然可以使用这种技术来创建更精细的案例来确定结果的优先级。

SELECT * 
FROM products
WHERE (name LIKE '%$search_query%' OR description LIKE '%$search_query%')
ORDER BY CASE WHEN name LIKE '%$search_query%' THEN 1 ELSE 2 END

关于mysql - SQL先显示A列结果再显示B列结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55007043/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com