programing

SQL(MariaDB)에서 문자열의 모든 하위 문자열에 대한 작업 수행

goodsources 2023. 8. 19. 10:15
반응형

SQL(MariaDB)에서 문자열의 모든 하위 문자열에 대한 작업 수행

고지 사항:이것은 데이터베이스 관리 또는 설계 질문이 아닙니다.이 데이터베이스를 설계하지 않았으며 변경 권한도 없습니다.

나는 많은 필드가 복합된 데이터베이스를 가지고 있습니다.예를 들어, 한 구역의 에이커 사용에 단일 열이 사용됩니다.많은 구역에는 1차 작물이 하나 있으며 값은 14와 같은 단일 숫자입니다.어떤 것들은 두 개의 주요 작물을 가지고 있고 그것은 "14,8"과 같은 쉼표로 구분된 두 개의 숫자를 가지고 있습니다.어떤 것들은 3개, 4개 또는 심지어 5개의 일차 작물을 가지고 있으며, 그 결과 "14, 8, 7, 4, 3"과 같은 복합적인 값을 얻습니다.

저는 분석 연구를 위해 이 데이터베이스에서 데이터를 추출하고 있습니다.지금 저는 그런 열을 R로 가져와서 5개의 값으로 나누고(5개의 값이 없으면 null 추가), 그 값에 대한 작업을 수행하고 있습니다.데이터베이스 자체에서 하고 싶습니다.쉼표의 값을 분할하고 결과 값에 대한 작업을 수행한 다음 작업 결과를 원래 열 형식으로 다시 연결합니다.

예를 들어, 저는 에이커 단위의 칼럼을 가지고 있습니다.제곱미터 단위로 주세요.그래서 저는 "14,8"을 선택하고, 일시적으로 14와 8로 바꾸고, 각각 4046.86을 곱해서 "56656.04,32374.88"을 얻고자 합니다.현재 제가 하고 있는 일은 regexp_replace를 사용하고 있습니다.나는 where 절에 대해 "acre REGEXP '^[0-9.], [0-9.], [0-9.], [0-9.]+$'"가 있는 모든 행으로 시작합니다.그러면 필드에 5개의 숫자가 있는 행이 나옵니다.그러면 "cast(regexp_replace(acres,*%',") * 4046.86"을 float로 하여 첫 번째 숫자를 할 수 있습니다.다른 regexp_replace를 사용하여 5개를 각각 수행할 수 있습니다.저는 그 가치들을 다시 연결시킬 수 있습니다.그런 다음 4개의 숫자가 있는 행, 3개, 2개, 마지막으로 단일 숫자 행에 대한 쿼리를 실행합니다.

단일 쿼리로 가능합니까?

함수를 사용하여 문자열을 구문 분석하고 원하는 결과로 변환합니다.이렇게 하면 작업에 대해 단일 쿼리를 사용할 수 있습니다.

언급URL : https://stackoverflow.com/questions/72621973/perform-operation-on-all-substrings-of-a-string-in-sql-mariadb

반응형