반응형
Select Statement with LIKE 연산자의 MySQL Case
를 조합하는 것이 가능합니까?CASE
스테이트먼트와LIKE
MySQL 연산자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
반응형
'programing' 카테고리의 다른 글
belongsToMany 관계가 존재하는지 확인합니다(라벨). (0) | 2022.09.23 |
---|---|
Vuex: 스토어 속성이 존재하는 경우에만 2초마다 함수를 디스패치하시겠습니까? (0) | 2022.09.23 |
JavaScript 관련 배열에서 개체를 삭제하려면 어떻게 해야 합니까? (0) | 2022.09.23 |
Vuex 및 Electron의 상태를 새 창으로 전달합니다. (0) | 2022.09.23 |
mysql은 문자열 'now()'를 datetime으로 취급합니까? (0) | 2022.09.23 |