반응형
MySQL 테이블에 firstname
및 lastname
필드가 있습니다. 편의를 위해 full_name
이라는 Doctrine 2 엔티티에 계산 된 열을 추가하려고합니다. 평범한 오래된 MySQL에서는 다음과 같이 할 것입니다.
SELECT CONCAT(firstname, " ", lastname) AS full_name FROM customers;
그러나 필드와 상수 문자열 (이 경우 "")을 연결하는 것은 Doctrine의 CONCAT 구현에서 작동하지 않는 것 같습니다. 다음 코드를 사용하는 경우
$repository
->createQueryBuilder('customer')
->select('CONCAT(customer.firstname, " ", customer.lastname) AS full_name')
// ...
오류가 발생합니다
[Syntax Error] line 0, col 91: Error: Expected StateFieldPathExpression | string | InputParameter | FunctionsReturningStrings | AggregateExpression, got '"'
MySQL에서와 동일한 동작을 어떻게 수행 할 수 있습니까?
해결 방법
분명히 DQL의 문자열은 큰 따옴표가 아닌 작은 따옴표로만 캡슐화 할 수 있습니다. 문서에서 간단한 검색으로이 동작을 직접 언급하지는 않았지만 상수 문자열을 포함하는 모든 예제에서 작은 따옴표를 사용했음을 알았습니다.
바꾸다
->select('CONCAT(customer.firstname, " ", customer.lastname) AS full_name')
에
->select('CONCAT(customer.firstname, \' \', customer.lastname) AS full_name')
또는
->select("CONCAT(customer.firstname, ' ', customer.lastname) AS full_name")
문제를 해결
참조 페이지 https://stackoverflow.com/questions/34755519
반응형
'MySql' 카테고리의 다른 글
MySQL 타임 스탬프에서 Java 날짜로 변환 (0) | 2020.11.14 |
---|---|
MySQL 테이블에 열이 너무 많으면 성능이 저하됩니까? (0) | 2020.11.14 |
MySQL Select 문의 PHP 변수 (0) | 2020.11.14 |
MySQL 교리 2 DBAL과 서브 쿼리 결합 (0) | 2020.11.13 |
MySQL ID : 외래 키를 만들 수 없습니다. 열에 인덱스가 없습니다. (0) | 2020.11.13 |
댓글