programing

MySQL SELECT를 사용하여 가상 열을 생성하는 방법

prostudy 2022. 9. 6. 21:34
반응형

MySQL SELECT를 사용하여 가상 열을 생성하는 방법

SELECT a AS b를 실행하고 b가 테이블 내의 컬럼이 아닌 경우 쿼리는 "가상" 컬럼을 생성합니까?

실제로 가상 컬럼을 쿼리에 삽입하고 정보를 처리하여 나중에 각 항목에서 사용할 수 있도록 해야 합니다.

예를 들어 다음과 같습니다.

SELECT id, email, IF(active = 1, 'enabled', 'disabled') AS account_status FROM users

이렇게 하면 작업을 수행하고 열로 표시할 수 있습니다.

편집:

join 및 show operations를 열로 사용할 수도 있습니다.

SELECT u.id, e.email, IF(c.id IS NULL, 'no selected', c.name) AS country
FROM users u LEFT JOIN countries c ON u.country_id = c.id

select 스테이트먼트 내에 가상 컬럼 "age"를 작성하려면 다음과 같이 하십시오.

select brand, name, "10" as age from cars...

다음과 같이 가상 열을 추가할 수 있습니다.

SELECT '1' as temp

단, 추가 생성된 컬럼에 조건을 붙이려고 하면 동작하지 않고 컬럼이 존재하지 않기 때문에 에러 메시지가 표시됩니다.

sql 결과를 table.ie으로 반환하면 이 문제를 해결할 수 있습니다.

SELECT tb.* from (SELECT 1 as temp) as tb WHERE tb.temp = 1

SELECT는 데이터베이스에서 데이터만 가져올 뿐 테이블 자체는 변경하지 않습니다.

쓰시면

SELECT a AS b FROM x

"b"는 쿼리의 별칭 이름일 뿐입니다.추가 열은 생성되지 않습니다.이 예제의 결과에는 "b"라는 이름의 열이 하나만 포함됩니다.그러나 표의 열은 "a"로 유지됩니다. "b"는 다른 이름일 뿐입니다.

'나중에 각 아이템과 함께 사용할 수 있도록'라는 것이 무슨 뜻인지 잘 모르겠습니다.선택문의 뒷부분이나 신청서의 뒷부분을 말씀하시는 건가요?코드 예를 제시해 주셨으면 합니다.

CASE 스테이트먼트를 사용할 수 있습니다.

SELECT name
       ,address
       ,CASE WHEN a < b THEN '1' 
             ELSE '2' END AS one_or_two
FROM ...

구문에 따라 a의 에일리어스가 b로 작성되지만 문장의 결과를 초과하는 범위는 없습니다.VIEW를 만들고 싶은 것 같습니다.

MariaDB Docs」를 참조해 주세요.가상 컬럼은 키워드를 추가하여 생성됩니다.VIRTUAL바로 앞에 식을 추가하면서 컬럼에 추가합니다.좋은 점은 가상 열에 인덱스를 추가할 수 있다는 것입니다.실제 값이 필요하고 스토리지보다 속도가 걱정되는 경우PERSISTENT기둥.

언급URL : https://stackoverflow.com/questions/455261/how-to-create-virtual-column-using-mysql-select

반응형