gpt4 book ai didi

MySQL 匹配 5 个字段中的 2 个

转载 作者:IT老高 更新时间:2023-10-29 00:16:29 24 4
gpt4 key购买 nike

在 MySQL 中,我试图选择与所提供数据的至少 2 个字段匹配的任何行

例如。我已获得 firstName、lastName、dob、website、email,我想要任何匹配 firstName 和 lastName,或 firstName 和 email,或 website 和 email 等的行。

我知道我可以写一个非常冗长的声明(this=this AND this=this) 或 (this=this etc但是这个查询可能会变得非常大,特别是如果我们决定要匹配 5 个以上的字段。

我们还需要对匹配的行进行排名,因此如果某些行匹配 3 个而不是最少的 2 个字段,那么它们应该在返回的结果中显示得更高。

之后我可以用 PHP 处理它,或者执行多个 SQL 查询,我只是想知道是否有人知道匹配这些数据的更简单/更干净的方法?

感谢您的帮助!乔

最佳答案

您可以计算匹配的表达式。 MySQL 为真返回 1,为假返回 0。

WHERE (FirstName = ?) + (LastName = ?) + (... = ?) > 2

您也可以使用它来订购。您需要降序排序以确保匹配度高的排在最前面。

ORDER BY ((FirstName = ?) + (LastName = ?) + (... = ?)) DESC

关于MySQL 匹配 5 个字段中的 2 个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7109375/

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