найти строки, содержащие по x чисел в строке - PullRequest
1 голос
/ 15 августа 2011

Мне нужно найти все строки в таблице, которые имеют 16 номеров в строке. Мне нужно убедиться, что пользователи еще не вставили строки, содержащие номер копии.Я собираюсь заменить все пробелы и тире пустой строкой и вручную осмотреть строки, чтобы убедиться, что я действую только с соответствующими.У нас несколько миллионов строк, и мне нужно сузить фокус.

1 Ответ

4 голосов
/ 15 августа 2011
...
WHERE column_name LIKE REPLICATE('[0-9]', 16);

Если вы хотите, чтобы не , как действительный номер кредитной карты, тогда:

...
WHERE column_name NOT LIKE REPLICATE('[0-9]', 16);

Конечно, помните, что карты American Express имеют только 15 цифр. Таким образом, чтобы включить это, вы можете вместо этого:

...
WHERE column_name LIKE REPLICATE('[0-9]', 16)
OR column_name LIKE '3' + REPLICATE('[0-9]', 14);

РЕДАКТИРОВАТЬ Исходя из интерпретации проблемы t-clausen.dk, когда ОП еще не заменил тире и пробелы, вам может понадобиться:

...
WHERE REPLACE(REPLACE(column_name, '-', ''),' ','') LIKE ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...