Несколько значений длины в базе данных, запрос SQL для большинства похожий матч - PullRequest
0 голосов
/ 29 апреля 2018

Я застрял и ищу руководство по завершению сборки моего SQL / PHP Query.

Я хотел бы взять определенное число, определенное ниже, в $ CC_P3 и запросить его в таблице PREFIXES, а затем вернуть значение столбца CATEGORY, с которым оно наиболее близко соответствует.

Проблема, с которой я столкнулся, заключается в том, что длины PREFIX разные. Может ли какой-либо орган дать мне указание, где и что я должен искать или делать для достижения этого результата?

Таблица PREFIXES имеет 3 столбца:

    ID, PREFIX, CATEGORY
    1, 0112, A
    2, 0761, B
    3, 0762, B
    4, 0764, C
    5, 0112554, D
    6, 01522, E

Часть исходного кода:

    $CC_P3 = "0762213311";
    $CC_QUERY = "SELECT CATEGORY from prefixes WHERE PREFIX LIKE '".$CC_P3."'";
    $RESULT = $conn->query($CC_QUERY);
    while($row = $RESULT->fetch_assoc()) {   
        $R_CAT = "{$row['CATEGORY']}"; 
    }
    echo $R_CAT;

1 Ответ

0 голосов
/ 29 апреля 2018

В основном, вы хотите like

SELECT p.CATEGORY 
FROM prefixes p
WHERE ? LIKE CONCAT(PREFIX, '%');

Обратите внимание, что ? является заполнителем для параметра , содержащего значение для $CC_P3. Не изменяйте строки запроса с такими значениями. Научитесь использовать параметры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...