두 테이블이 있다고 가정 해보십시오. 하나에는 긴 텍스트 값이있는 필드 (예 : foobarbaz
)가 있고 다른 필드에는 더 짧은 값 (foobar
및 someothertext
)이 들어 있습니다. 다음 조건을 사용하여 두 테이블에서 값을 검색하고 싶습니다. 텍스트가 같지 않아야하지만 긴 문자열의 시작 부분이 짧은 문자열과 일치해야합니다. Postgres에서이 작업을 수행 할 수있는 방법이 있습니까? 미리 감사드립니다.PostgreSQL의 텍스트 값 비교
1
A
답변
1
대해 어떻게 :
SELECT <whatever>
FROM <your tables>
WHERE one_field <> the_other_field
AND position(the_other_field in one_field) = 1;
는 string functions and operators를 참조하십시오.
2
다른 답변에서는 "위치"를 사용할 수 있지만 정규 표현식을 사용합니다.
postgres=> create database test;
CREATE DATABASE
postgres=> \c test
You are now connected to database "test".
test=> create table long (long varchar);
CREATE TABLE
test=> create table short (short varchar);
CREATE TABLE
test=> insert into long values ('foobarbaz');
INSERT 0 1
test=> insert into long values ('qfoobarbaz');
INSERT 0 1
test=> insert into long values ('now this is a long text');
INSERT 0 1
test=> insert into short values ('foobar');
INSERT 0 1
test=> insert into short values ('someothertext');
INSERT 0 1
test=> select long.long from long join short on long.long <> short.short and long.long ~ ('^' || short.short);
long
-----------
foobarbaz
(1 row)
주의해야 할 점은 정규식이 포함되어있을 경우 short가 이스케이프 처리되어야합니다.
(후 편집) - 이것은 (안 테스트) 등을 사용하는 경우처럼 보일 것입니다 방법입니다
select long.long
from long
join short on
long.long <> short.short and
long.long LIKE (short.short || '%');
관련 문제
- 1. PostgreSQL의 배열 비교
- 2. 텍스트 파일의 값 비교
- 3. PostgreSQL의 문자열 비교
- 4. 비교 값
- 5. postgresql의 텍스트 로그 파일 보관
- 6. PostgreSQL의 전체 텍스트 색인 ('영어'또는 '단순하지 않음)?
- 7. 문자열 값 비교
- 8. 문자열과 옵션 값 비교
- 9. Excel 매크로 - 값 비교
- 10. 비교 HTTP_REFERER 값
- 11. 값 사이의 비교
- 12. 표 셀의 값 비교
- 13. 버튼 값 비교
- 14. 두 문자열의 값 비교
- 15. 두 열의 값 비교
- 16. 두 배열 값 비교
- 17. 두 값 비교
- 18. PostgreSQL의 열에있는 기존의 모든 값 집합을 가져옵니다.
- 19. PostgreSQL의 업데이트 값 + I 표 이하 갱신해야
- 20. PostgreSQL의 다른 함수에 반환 값 전달
- 21. PostgreSQL의
- 22. 자바 스크립트 유효성 검사 : 2 개의 텍스트 상자 값 비교
- 23. PostgreSQL의 필드에 텍스트 파일을 삽입하는 방법은 무엇입니까?
- 24. 배치 파일 비교 텍스트 파일로 레지스트리 비교
- 25. PostgreSQL의 복제 도구 PostgreSQL의 위키에
- 26. .NET Framework의 텍스트 비교
- 27. 텍스트 파일 비교 소프트웨어
- 28. 버튼 텍스트 비교
- 29. 텍스트 비교/차이 알고리즘
- 30. Eclipse 텍스트 비교 순서
감사합니다, 즉 내가 필요 정확히입니다. 여기서 '1'은 첫 번째 문자입니까? –
예, 1은 첫 번째 일치 항목의 색인입니다. 일치하는 것이 없으면 position()은 0을 반환합니다. – dslh
좋아하는 사람들과 함께 할 수있는 방법이 있는지 모르십니까? 전에는 LIKE에서 하드 코딩 된 패턴 만 보았 기 때문에 확실하지 않습니다. –