title
열에 특정 문자열이 포함된 postgres 테이블의 전체 행을 삭제하는 방법을 알고 싶습니다 . 따라서 문자열이 다음과 같은 경우:
it is a sunny day
테이블에서 이 행을 완전히 삭제하려면 postgres에서 명령을 어떻게 실행해야 합니까? 예를 들어 다음 줄이 삭제됩니다.
12, I woke up and to my surprise it is a sunny day, 54645646,
또한 문자열이 대문자와 소문자의 혼합일 수 있으므로 대소문자를 무시하고 싶습니다(즉, 표 전체에서 대소문자가 다릅니다). 도움을 주시면 감사하겠습니다.
나는 시도했다:
DELETE FROM mytable where title like 'it is a sunny day'
그러나 이 문자열을 포함하는 행이 많다는 것을 알고 있음에도 불구하고 레코드가 업데이트되지 않습니다.
답변1
LOWER 함수를 사용하면 대소문자를 구분하지 않고 문자열을 검색할 수 있습니다.
DELETE FROM mytable WHERE LOWER(title) LIKE '%it is a sunny day%';
답변2
당신은 성공했습니다. 항목 문자열의 일부만 검색하려면 문자열뿐만 아니라 정규식 패턴을 사용해야 하며, 대소문자를 구분하지 않으려면 ILIKE 키워드를 사용해야 합니다. 바라보다https://www.postgresql.org/docs/9.0/static/functions-matching.html자세히 알아보세요(이 URL은 PostgreSQL 9.x 버전에만 유효합니다).