Как получить значения, для которых известны формат и суффикс, но точные значения неизвестны и может быть несколько значений из базы данных? - PullRequest
0 голосов
/ 01 октября 2019

У меня есть вариант использования, как показано ниже:

У меня есть тысячи записей в базе данных, и скажем, у меня есть один столбец с именем myValue.

Теперь фактическое значение myValue может бытьбуквенно-цифровая строка, где первые два символа являются алфавитами, следующие 6 символов являются числами, а последний символ является фиксированным алфавитом, скажем, «x», который может присутствовать или не присутствовать в значении. (Например, «AB123456», «AB123456x»)

Итак, я знаю формат значения поля myValue, но не знаю всех фактических значений, поскольку записей много.

Теперь яхотите получить все такие значения, для которых существует значение без последнего символа x (например, «AB123456») и такое же значение с последним символом x (например, «AB123456x»).

Так есть ликак я могу получить такие данные?

Я сейчас делаю проб и ошибок на существующих данных, но не нашел успеха, и есть тысячи таких строк, поэтому любая помощь по этому вопросу будет высоко оценена.

1 Ответ

1 голос
/ 01 октября 2019

Вы можете сделать это так:

SELECT myvalue
FROM t
WHERE myvalue LIKE '________'
AND EXISTS (
    SELECT 1
    FROM t AS x
    WHERE x.myvalue = CONCAT(t.myvalue, 'x')
)

А (скорее всего) более быстрый альтернативный вариант:

SELECT TRIM(TRAILING 'x' FROM myvalue) AS myvalue2
FROM t
GROUP BY myvalue2
HAVING COUNT(DISTINCT myvalue) > 1
...