알파벳을 살펴보고 적절한 문자로 시작하는 모든 항목을 나열하기 위해 SQL LIKE 조건 세트를 사용하고 있습니다. 예를 들어 제목이 "A"로 시작하는 모든 책을 가져옵니다.
SELECT * FROM books WHERE title ILIKE "A%"
문자는 괜찮지 만 숫자로 시작하는 모든 항목을 나열하려면 어떻게해야합니까? 이것이 가치있는 것은 Postgres DB에 있습니다.
답변:
그러면 제목이 숫자로 시작하는 모든 책이 (정규식에 의해) 선택됩니다.
SELECT * FROM books WHERE title ~ '^[0-9]'
특정 숫자로 시작하는 정수를 원한다면 다음을 사용할 수 있습니다.
SELECT * FROM books WHERE CAST(price AS TEXT) LIKE '123%'
또는 사용하십시오 (모든 숫자가 동일한 자릿수를 가지고 있다면 (제약 조건이 유용 할 것입니다))
SELECT * FROM books WHERE price BETWEEN 123000 AND 123999;
PostgreSQL은 지원하는 정규 표현식 매칭을 .
따라서 귀하의 예는 다음과 같습니다.
SELECT * FROM books WHERE title ~ '^\d+ ?'
하나 이상의 숫자 및 선택적 공백으로 시작하는 제목과 일치합니다.
PostreSQL에서는 SIMILAR TO 연산자 ( more )를 사용할 수 있습니다 .
-- only digits
select * from books where title similar to '^[0-9]*$';
-- start with digit
select * from books where title similar to '^[0-9]%$';