gpt4 book ai didi

php - 加权 MySql 查询搜索

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

我环顾四周,发现了一些与我类似的问题,但它们缺乏解释。

我正在尝试搜索包含多列的表格。我希望匹配列数最多的行位于顶部,匹配列数最少的行位于底部。我见过几种方法。我目前的糟糕方式是使用大量 MySQL 查询和 PHP 来完成工作。

例子

    +----+-----------+----------+------+-------+
| ID | firstName | lastName | more | stuff |
+----+-----------+----------+------+-------+
| 1 | Bob | Hope | 1 | 450 |
| 2 | Steve | Hope | 0 | 29 |
| 3 | Gary | Flops | 1 | 8 |
+----+-----------+----------+------+-------+

我希望能够搜索 lastName = Hope OR more = 1我希望 Bob Hope 位居榜首,因为他符合两项要求。我知道在这个例子中会发生这种情况,但这只是一个例子。

如果我查询; lastName = Hope OR firstName = Steve。 Steve 应该排在最前面,然后是 Bob

我希望这很容易理解。能否给我一个详细的例子和解释。

最佳答案

这个怎么样:

SELECT
id,
firstName,
lastName,
more,
stuff,
(lastName = 'Hope') + (firstName = 'Steve') AS weight
FROM mytable
ORDER BY weight DESC;

结果:

+----+-----------+----------+------+-------+--------+
| id | firstName | lastName | more | stuff | weight |
+----+-----------+----------+------+-------+--------+
| 2 | Steve | Hope | 0 | 29 | 2 |
| 1 | Bob | Hope | 1 | 450 | 1 |
| 3 | Gary | Flops | 1 | 8 | 0 |
+----+-----------+----------+------+-------+--------+

关于php - 加权 MySql 查询搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6781712/

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