programing

MariaDB: 'AS'를 사용하지 않고 중복된 열 이름을 검색할 수 있습니까?

itsource 2022. 9. 24. 23:39
반응형

MariaDB: 'AS'를 사용하지 않고 중복된 열 이름을 검색할 수 있습니까?

테이블이 많아서id를 프라이머리 키로서 사용합니다.제가 여러 테이블을 합칠 때select *id 컬럼의 1개만 표시됩니다.MySql을 사용할 때 이 문제를 해결할 수 있는 유일한 방법은SELECT AS,예를들면SELECT id AS groupId.

MariaDB의 경우도 마찬가지입니까?중복된 열 이름은 id 필드에만 국한되지 않기 때문에 결국 매우 상세한 선택 문장으로 끝납니다.

MariaDB가 테이블 이름 앞에 컬럼 이름을 붙일 수 있는 쿼리 기능을 도입해 주셨으면 합니다.예를 들어 쿼리는 열 이름을 가져올 수 있습니다.group.id그리고.person.id.

편집: Shadow의 코멘트에 따르면 문제는 MariaDB(또는 MySql)가 아닙니다.결과 세트에는 여러 개의 'id' 필드가 포함되어 있습니다.문제는 클라이언트 라이브러리에 있습니다.저 PDO의 경우입니다.

같은 이름의 결과 세트에 여러 열이 있는 경우 mysql도 모두 반환되지만 필드 에일리어스를 사용하지 않는 한 결과 세트에서도 동일한 이름을 가집니다.그걸 증명하기 위해 스클피들을 만들었지클라이언트 라이브러리가 두 열을 구별할 수 없을 수 있습니다.이것은, 예를 들면, 라라벨에 관한 기존의 문제입니다.

mysql과 mariadb 둘 다 필드 이름 앞에 테이블 이름을 붙일 수 있지만 테이블 이름은 필드 이름의 일부로 반환되지 않습니다.그러나 대부분의 클라이언트 라이브러리는 mysql / mariadb에 의해 반환된 결과 집합에서 열에 대한 메타데이터를 가져올 수 있습니다. 여기에는 계산되지 않은 열의 테이블 이름이 포함됩니다.mysqli_fetch_field_direct() 함수의 예를 참조하십시오.

메타데이터에서 검색된 테이블 이름을 사용하여 어떤 ID 열이 어떤 테이블에 속하는지 확인할 수 있습니다.

언급URL : https://stackoverflow.com/questions/34833559/mariadb-can-i-retrive-duplicate-column-names-without-using-as

반응형