새로운 레스토랑 목록이 있는데 전화 번호를 사용하여 레스토랑 데이터베이스와 비교하고 싶습니다. 전화 번호 문제는 데이터베이스의 형식이 다른 것입니다 (예 : 123-345-6789
또는 (123)-456 8988
).레일에서의 SQL 쿼리 중 숫자가 아닌 값의 전화 번호 제거
지금까지 전화 색인을 작성하여 빠르게 검색했습니다. 또한 새 레스토랑의 전화 번호를 삭제하여 숫자 값 (0-9) 만 포함 시켰습니다.
이제 데이터베이스를 비교하기 전에 숫자를 엄격하게 비교하기 위해 데이터베이스의 숫자를 제거하고 싶습니다.
위 코드의 문제점은 contact_phone (데이터베이스에서)이 스트립되지 않은 형식으로되어 있다는 것입니다. 지금까지의 연구 결과에 의하면 REGEXP_LIKE
과 같은 것을 사용해야한다고 믿어 왔지만 레일즈로 이것을 어떻게 구현할지는 모르겠습니다. 데이터베이스를 업데이트하고 싶지는 않습니다. DB의 원래 형식을 그대로 유지하면서 비교하기 위해 숫자를 제거하기 만하면됩니다.
숫자가 아닌 값인 contact_phone
의 전화 번호를 formatted_phone
과 비교하기 전에 데이터베이스에서 제거하려면 어떻게합니까?
당신 contact_phone의 포맷되지 않은 값을 전달하는 데이터베이스에 새로운 필드를 만들 수 있습니다 (원본을 유지하면서) – tamersalama
@tamersalama 그래, 그렇긴하지만 중복 된 데이터가 있음을 의미합니다. – Huy