programing

Select Statement with LIKE 연산자의 MySQL Case

randomtip 2022. 9. 23. 21:39
반응형

Select Statement with LIKE 연산자의 MySQL Case

를 조합하는 것이 가능합니까?CASE스테이트먼트와LIKEMySQL 연산자SELECT스테이트먼트?

예를 들어, 한 열에 두 가지 형식 중 하나로 데이터를 저장하는 데이터베이스를 쿼리하려고 합니다(이는 끔찍하고 머리가 아프지만 데이터를 변경할 수는 없습니다).그래서 가끔 칼럼이numbers에는 "6901xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

저는 이렇게 데이터를 조회하고 싶습니다.

SELECT
    CASE digits
      WHEN LIKE "6901%" THEN substr(digits,4)
      WHEN LIKE "91%" THEN substr(digits,2)
    END as "digits",
FROM raw

이것은 분명히 효과가 없지만 나는 그것이 가능하기를 바란다.

의 두 번째 형식을 사용하면 됩니다.

SELECT
  CASE
    WHEN digits LIKE '6901%' THEN substr(digits,4)
    WHEN digits LIKE '91%' THEN substr(digits,2)
  END as digits
FROM raw

게다가, 마지막에는 쉼표가 붙어 있습니다.SELECT.

해라

SELECT
    CASE true
      WHEN digits LIKE "6901%" THEN substr(digits,4)
      WHEN digits LIKE "91%" THEN substr(digits,2)
    END as "digits",
FROM raw

아마 사용하다LEFT()?

SELECT
    CASE 
      WHEN LEFT(digits, 4) = '6901' THEN substr(digits,4)
      WHEN LEFT(digits, 2) = '91' THEN substr(digits,2)
    END 
FROM raw

퍼포먼스가 더 뛰어나야 합니다.LIKE.

자리수가 일정하다고 가정하면, 다음과 같은 것을 사용할 수 있습니다.

SELECT IF(digits > 919999, MOD(digits, 100), MOD(digits, 10000) FROM raw

더하다0를 사용하여 실제 자리수와 일치시킵니다.

언급URL : https://stackoverflow.com/questions/3579760/mysql-case-in-select-statement-with-like-operator

반응형