我正在运行此SQL查询以匹配数据库中的数据记录:
SELECT * from billing_match_table WHERE 'Exchange Mailbox plus Outlook' LIKE CONCAT(description, '%');
所以在表格中有两行描述:
Exchange Mailbox
Exchange Mailbox plus Outlook
因此运行此查询将返回两个记录,但我希望能够匹配最接近的记录
我使用CONCAT
这种方式的原因是因为我也有这样的记录:
Non-Geographic Number 0843123456
的 Non-Geographic Number 0843
和
需要匹配Non-Geographic Number 0845123456
的 Non-Geographic Number 0845
那么如何将这些匹配到数据库中最接近的记录而不仅仅是返回的第一行
答案 0 :(得分:3)
我认为"最接近"记录将具有与常量字符串匹配的最长描述。如果是这样的话:
SELECT *
FROM billing_match_table
WHERE 'Exchange Mailbox plus Outlook' LIKE CONCAT(description, '%')
ORDER BY length(description) desc
LIMIT 1;