Как использовать оператор LIKE в MariaDB для списка почтовых индексов с максимальными и минимальными значениями из 4 символов? - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть эта база данных с некоторой случайной информацией. В базе данных мне нужно использовать оператор LIKE, чтобы найти все почтовые коды длиной не менее 4 символов и не более 4 символов.

1 Ответ

1 голос
/ 21 февраля 2020

Если предположить, что столбцы PostalCode имеют тип данных VARCHAR, существует несколько возможных шаблонов. Используя оператор сравнения LIKE, мы могли бы использовать четыре символа подчеркивания

 PostalCode LIKE '____' 

Каждое подчеркивание соответствует ровно одному любому символу, включая пробел и специальные символы. Любое значение PostalCode, для которого это выражение оценивается как 1 (ИСТИНА), можно сказать, что оно удовлетворяет "максимуму и минимуму из 4 символов".

Другим вариантом может быть получение количества символов. используя функцию MySQL CHAR_LENGTH

CHAR_LENGTH(PostalCode) = 4 

В соответствии с требованием использовать оператор LIKE, мы можем использовать LIKE вместо равных и разрешить неявное приведение типа, например

CHAR_LENGTH(PostalCode) LIKE '4'

Другим вариантом было бы использование сравнения REGEXP, например,

PostalCode REGEXP '^....$'

Опять же, в соответствии с требованием включить сравнение LIKE, мы могли бы сравнить результат из этого выражения, который не является необходимым запутывание

 ( PostalCode REGEXP '^....$' ) LIKE '1'
...