programing

MySQL에서 영숫자만 포함하는 행만 선택

randomtip 2022. 11. 2. 23:21
반응형

MySQL에서 영숫자만 포함하는 행만 선택

MySQL에서 영숫자 문자만 포함하는 모든 행을 선택하려고 합니다.

SELECT * FROM table WHERE column REGEXP '[A-Za-z0-9]';

그러나 영숫자가 아닌 문자가 포함된 경우에도 모든 행을 반환합니다.

다음 코드를 사용해 보십시오.

SELECT * FROM table WHERE column REGEXP '^[A-Za-z0-9]+$'

그러면 모든 문자가 일치합니다.

문장은 영숫자가 아닌 다른 문자를 포함하는 경우에도 문자 또는 숫자를 포함하는 문자열과 일치합니다.이것을 시험해 보세요.

SELECT * FROM table WHERE column REGEXP '^[A-Za-z0-9]+$';

^그리고.$스트링의 일부만 일치하는 것이 아니라 전체 스트링과 일치해야 합니다.+1개 이상의 영문자를 찾습니다.

원하는 경우 이름 있는 문자 클래스를 사용할 수도 있습니다.

SELECT * FROM table WHERE column REGEXP '^[[:alnum:]]+$';

이것을 시험해 보세요.

REGEXP '^[a-z0-9]+$'

regexp는 이진 필드를 제외하고 대소문자를 구분하지 않습니다.

이것도 있습니다.

select m from table where not regexp_like(m, '^[0-9]\d+$')

원하는 열(예에서는 m이지만 변경할 수 있음)에서 문자가 포함된 행을 선택합니다.

Oracle 플랫폼에서는 대부분의 조합이 제대로 작동하지 않습니다.나중에 참조할 수 있도록 공유합니다.

이거 드셔보세요

select count(*) from table where cast(col as double) is null;

를 변경하다REGEXP로.Like

SELECT * FROM table_name WHERE column_name like '%[^a-zA-Z0-9]%'

이 제품은 잘 작동합니다.

언급URL : https://stackoverflow.com/questions/1471523/select-only-rows-that-contain-only-alphanumeric-characters-in-mysql

반응형