我有一个表格,其中包含一行电话号码前缀和每个前缀的一行价格。
样本表:
prefix | price
---------------------
| 21366 | 0.15 |
| 2010 | 0.1 |
| 213 | 0.13 |
---------------------
在网站中,将要求用户插入电话号码(例如21366123456),我必须在数据库表中搜索最准确的匹配。
在这种情况下,即使表中的前缀值为213,我也需要21366的结果。
如何使用简单的MySQL查询来完成,而无需递归地循环用户输入值?
答案 0 :(得分:1)
试试这个:
SELECT prefix, price
FROM mytable
ORDER BY LENGTH('21366123456') - LENGTH(REPLACE('21366123456', prefix, '')) DESC LIMIT 1