以最佳结果排序

时间:2016-06-11 14:43:24

标签: mysql

让mysql表包含字段'descript'和这些样本值。

malik
ali
dali
other ali

有mysql查询,如:

select * from table where descript like '%ali%'

是否可以对选择结果进行排序购买最相关的? 所以在这个例子中我想拥有它: 阿里 其他阿里 达利/马利克......

2 个答案:

答案 0 :(得分:1)

您可以使用CASE表达式来计算不同类型匹配的相关性,并按此顺序排列。

ORDER BY CASE
    WHEN descript = 'ali' THEN 1 -- exact match
    WHEN descript REGEXP '[[:<:]]ali[[:>:]]' THEN 2 -- whole word
    ELSE 3 -- anything else
END ASC

DEMO

答案 1 :(得分:0)

您可以使用locate来反转字符串第一次出现的位置并使用像nest结果

func convertPointToIndexPath(point: CGPoint) -> (UITableView, NSIndexPath)? {
    if let tableView = [tableView1, tableView2, tableView3].filter({ $0.frame.contains(point) }).first {
        let localPoint = scrollView.convertPoint(point, toView: tableView)
        let lastRowIndex = focus?.0 === tableView ? tableView.numberOfRowsInSection(0) - 1 : tableView.numberOfRowsInSection(0)
        let indexPath = tableView.indexPathForRowAtPoint(localPoint) ?? NSIndexPath(forRow: lastRowIndex, inSection: 0)
        return (tableView, indexPath)
    }

    return nil
}