gpt4 book ai didi

php - Mysql 查询和对几列进行排序

转载 作者:行者123 更新时间:2023-11-29 23:10:10 25 4
gpt4 key购买 nike

这是我的查询,我想做的是根据这三个条目选择最佳匹配案例并对它们进行排序,以便最匹配的案例首先出现。它不起作用,它显示了满足这些 OR 条件的所有情况。而且它不会按最佳匹配进行排序。那么有没有更好的方法可以用这个想法来编写查询呢?

$displayLeads = $DB->query("SELECT * FROM autoleads WHERE `lead_status`='NEW' AND `contact_email` IS NOT NULL AND (`status_date` = '".$date_sort."' OR `contact_address` LIKE '%".$state_sort."%' OR`status_code` = '".$code_sort."') ORDER BY status_code = $code_sort DESC, status_date = $date_sort DESC"); 

最佳答案

假设“最佳”匹配是指与子查询的最多匹配,那么您可以计算匹配项并按以下顺序排序:

SELECT *
FROM autoleads
WHERE `lead_status`='NEW' AND `contact_email` IS NOT NULL AND
(`status_date` = '".$date_sort."' OR
`contact_address` LIKE '%".$state_sort."%' OR
`status_code` = '".$code_sort."'
)
ORDER BY (`status_date` = '".$date_sort."' +
`contact_address` LIKE '%".$state_sort."%' +
`status_code` = '".$code_sort."'
) DESC

这假设没有任何列采用 NULL 值。如果可以,只需将列名称替换为 coalesce(col, '')

关于php - Mysql 查询和对几列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28114951/

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