2016-02-08 3 views
0

У меня есть таблица, содержащая ряд префиксов номера телефона и ряд цен для каждого префикса.Как найти таблицу MySQL для наиболее точного соответствия

Пример таблицы:

prefix | price 
--------------------- 
| 21366 | 0.15 | 
| 2010 | 0.1 | 
| 213  | 0.13 | 
--------------------- 

На сайте, то пользователю будет предложено ввести номер телефона (например, 21366123456), где я должен искать в таблице базы данных для наиболее точного соответствия.

В этом случае, даже если есть значение префикса 213 в таблице, я буду нуждаясь результатом 21366.

Как это можно сделать с помощью простого запроса MySQL без зацикливания рекурсивно на пользователе входное значение?

ответ

1

Попробуйте это:

SELECT prefix, price 
FROM mytable 
ORDER BY LENGTH('21366123456') - LENGTH(REPLACE('21366123456', prefix, '')) DESC LIMIT 1 

Demo here

+0

Удивительно. благодаря –

Смежные вопросы