Как получить совпадение результатов из базы данных MySQL между символами? - PullRequest
0 голосов
/ 12 октября 2018

Используя MySQL, как я могу запросить все записи, которые начинаются с определенной буквы в диапазоне от одной буквы до другой?Например, я хочу найти все записи, которые имеют первую букву между af.

Совпадения: Albert Donald Frank

Несоответствия: Sarah Reba Thomas

С числами, которые я могу использовать

SELECT * FROM table WHERE id >= int AND id <= int

Или используйте оператор Между.Как я могу сделать это, используя буквы, используя первую букву каждого слова в базе данных?

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

Вы можете использовать регулярное выражение для этого.Подробнее читайте здесь: REGEX_LIKE () .Запрос, который вам нужен, будет выглядеть так:

MySQL 8.0

SELECT
    *
FROM
    <table_name>
WHERE
    REGEXP_LIKE(<column_name>, '^[a-f]');

MySQL <8.0 </strong>

SELECT
    *
FROM
    <table_name>
WHERE
    <column_name> REGEXP '^[a-f]';

Это будет соответствовать всему регистру, начиная с букв диапазона от [a до f].

0 голосов
/ 12 октября 2018

Вы должны быть в состоянии использовать диапазон здесь.Чтобы охватить a до f включительно, независимо от случая, мы можем попробовать:

SELECT *
FROM yourTable
WHERE (name >= 'a' AND name < 'g') OR (name >= 'A' AND name < 'G');

Демо

Обратите внимание, чтоэтот подход оставляет открытой возможность для MySQL использовать индекс, который может существовать в столбце name.

Как прокомментировал @John ниже, если вы не используете параметры сортировки, чувствительные к регистру, то мыМожно упростить приведенный выше запрос к этому:

SELECT *
FROM yourTable
WHERE name >= 'a' AND name < 'g';
...