作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的查询,我想做的是根据这三个条目选择最佳匹配案例并对它们进行排序,以便最匹配的案例首先出现。它不起作用,它显示了满足这些 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/
我正在尝试使用描述的方法将数据表转换为字典 here , 但我得到一个错误 Cannot implicitly convert type System.Collections.Generic.Dict
我想在几个列上使用 orderBY,但它们应该像一列一样。 该表看起来像这样: col1 | col2 5 | 2 | | 3 7 | | 1 | 1
我有这张表 mytable: +----+--------------------------------------+ | id | date1 | date2 | date3
我是一名优秀的程序员,十分优秀!