SQL SUBSTRING в состоянии WHERE - PullRequest
0 голосов
/ 07 июля 2019
create table numbers (number varchar(10));
insert into numbers (number) values
('1234123452'),
('5532003644'), 
('1122330505'),                                      
('1103220311'),                                     
('1103000011'),
('1103020012');                                    

Запрос: -

SELECT * FROM numbers 
WHERE SUBSTRING(Number,1,4) = SUBSTRING(Number,5,8)

Результат: -

Нет результатов для отображения.


Ожидаемый результат :

1234123452

Ответы [ 2 ]

3 голосов
/ 07 июля 2019

Третий аргумент SUBSTRING() - это длина, а не конечная позиция.Так и должно быть:

SELECT * FROM numbers 
WHERE SUBSTRING(Number,1,4) = SUBSTRING(Number,5,4)
0 голосов
/ 07 июля 2019

Вы можете воспользоваться REGEXP_LIKE здесь, при условии, что вы используете MySQL 8 +:

SELECT *
FROM numbers
WHERE REGEXP_LIKE(Number, '^(.{4})\\1';

Шаблон ^(.{4})\\1 сопоставляет и захватывает первые четыре символа, затем утверждает, что эти же символы появляютсясразу после.

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