정수(id)를 텍스트 문자열에 매핑하시겠습니까?
데이터베이스에 "type"이라는 필드를 작은 크기로 저장하고 있습니다.제가 종류가 많지 않기 때문에 이 모든 종류의 이름을 저장할 수 있는 테이블을 만들지 않기로 했습니다.
테이블을 조회할 때 pph 배열에 저장하고 있는 해당 이름으로 유형을 대체했으면 합니다.결과를 루프하여 반환된 결과 행을 대체하는 대신 sql 문 자체 내부에서 이러한 대체를 수행할 수 있는 방법이 있는지 궁금합니다.
이와 같은 것이 존재합니까?
select *, map(type, {1=>'abc', 2 => 'xyz'}) from orders
이것을 할 수 있는 유일한 방법은 (확실히) 다음과 같은 구조물을 사용하는 것입니다.
SELECT *, CASE type WHEN 1 THEN 'abc' WHEN 2 THEN 'xyz' END as stringType
FROM orders
사용할 수도 있습니다.ELSE
기본값을 지정하는 절(예:CASE type WHEN 1 THEN 'abc' WHEN 2 THEN 'xyz' ELSE 'unknown' END
.
사실, mathematical.coffee에 의한 답과는 대조적으로, MySQL에는 숫자를 텍스트에 매핑하는 또 다른 방법이 있습니다 - 적어도 숫자가 연속적이라면:
그
ELT()
function 은 문자열 목록의 N번째 요소를 반환합니다.str1
한다면N = 1
,str2
한다면N = 2
, 등등.돌아온다NULL
N이 1보다 작거나 인수 수보다 클 경우.
예:
mysql> SELECT ELT(1, 'ej', 'Heja', 'hej', 'foo');
-> 'ej'
mysql> SELECT ELT(4, 'ej', 'Heja', 'hej', 'foo');
-> 'foo'
출처:
https://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_elt
언급URL : https://stackoverflow.com/questions/9140107/map-integerid-to-text-string
'programing' 카테고리의 다른 글
gcc/usr/bin/ld: 오류: -ln커서를 찾을 수 없습니다. (0) | 2023.09.17 |
---|---|
jquery/messages/messages/json html을 텍스트 문자열로 렌더링 (0) | 2023.09.17 |
문자 배열의 리터럴 문자열 이니셜라이저 (0) | 2023.09.17 |
Android에서 모서리가 둥근 사용자 지정 대화 상자를 만드는 방법 (0) | 2023.09.17 |
xml을 생성하는 가장 좋은 방법은? (0) | 2023.09.17 |