php - MS SQL CONCAT와 "+"쿼리 차이 (doctrine 2 사용)


php - MS SQL CONCAT와 "+"쿼리 차이 (doctrine 2 사용)




최초 작성일 : 2021-09-10 | 수정일 : 2021-09-10 | 조회수 : 404

Doctrine 2 인터페이스를 사용하여 MS SQL 데이터베이스에 액세스하고 있습니다. Doctrine 2와 MS SQL 양쪽에서 꽤 흥미로운 문제를 발견했습니다.

어떤 이유로 질의를 바꾸는 교리 2

  1. $this->getEntityManager()->createQueryBuilder()
  2. ->from(table::class, 'il')
  3. ->select('CONCAT(il.col1,il.col2,il.col3) AS concated')
  4.  

(자체 별칭을 사용하는) 것과 같은 것으로 변경 :

  1. SELECT (t0_.col1+ t0_.col2+ t0_.col3) AS sclr_0 FROM tableName t0_
  2.  

가장 중요한-그것은 CONCAT 를 변경  "+"로 표현합니다. 그러나 연결된 문자열을 다른 테이블의 값과 비교하고 싶을 때까지 정상적으로 작동합니다 (또는 작동하는 것처럼 보입니다).

  1. $targetQueryBuilder->getEntityManager()->createQueryBuilder()
  2. ->from($namespace, 's')
  3. ->select('1')
  4. ->where('CONCAT(il1.col1, il1.col2, il1.col3) = s.controlValue')
  5. ->andWhere('s.tableName = :tablename')
  6. ->andWhere('s.tableRowIdentifier='.$rowIdentifier);
  7.  

(문제가있는 경우 메모리 에서이 쿼리를 작성하고 있습니다-중요하지 않습니다-문제를 시각화하는 것입니다) CONCAT 에서 SQL Studio에서 원시 쿼리를 실행하면 완벽하게 작동합니다.  기능. "+"로는 그렇지 않습니다. nvarchar 형식의 모든 연결된 열 문제는 : 차이점은 어디에 있습니까?

지도 CONCAT 를 건너 뛰기 위해 교리에서 엄청난 양의 조합을 확인했습니다.  "+"로 성공했지만 성공하지 못했습니다. CONCAT 를 강제하기 위해 더미 렉서 확장을 작성해야했습니다.  최종 검색어에 적용 할 함수입니다.

추가적인 (아마도 SQL 서버에 따라 다름) 문제는 다음과 같습니다. 테스트 할 때

  1. SELECT
  2. (i1_.NameUnternehmen + i1_.Land + i1_.Ort + i1_.Straße + i1_.Postleitzahl) AS a,
  3. CONCAT(i1_.NameUnternehmen , i1_.Land , i1_.Ort , i1_.Straße , i1_.Postleitzahl) AS c
  4. FROM tablename
  5.  

( Straße )  이 문제에서는 열 이름이 중요하지 않은 것 같습니다.) WHERE 문을 사용하여 연결된 문자열을 제어 값과 비교할 때 선택 결과가 다릅니다.

->where('CONCAT(il1.col1, il1.col2, il1.col3) = s.controlValue')  -모든게 정확 해

->where('(il1.col1 + il1.col2 + il1.col3) = s.controlValue')  -열 "a"의 결과가 널입니다. 방금 테스트했으며 다른 테이블에서는 때로는 null이 아닙니다. 이유를 모르겠습니다. "c"열은 항상 정확합니다.

닉네임:
댓글내용:
🚀 추천글
새글

애플컴퓨터 신제품, 2025년 출시될 최신 정보 총정리!
2025-08-23
  • 애플컴퓨터
  • 애플 신제품
  • 2025년 출시
애플컴퓨터 신제품, 2025년 기대작 총정리!
2025-08-22
  • 애플컴퓨터
  • 2025년 신제품
  • 맥북 프로
애플컴퓨터 신제품, 2025년 최신 소식 총정리!
2025-08-21
  • 애플컴퓨터
  • 2025년 신제품
  • 아이폰 17
애플컴퓨터 최신 소식: M4 칩 성능 폭발! 🚀
2025-08-20
  • M4 칩
  • 애플 M4
  • 애플 신제품
애플컴퓨터 최신 M5 칩 성능 '깜짝'!
2025-08-20
  • 애플 M5 칩
  • M5 칩 성능
  • 애플 실리콘
추천글
카슈미르, 전쟁의 불씨: 국제적 긴장의 중심에서의 갈등 분석
2025-08-20
  • 카슈미르분쟁
  • 인도파키스탄
  • 카르길전쟁




📸 이미지 프롬프트 복사 완료!
이제 어떤 이미지 생성 도구로 이동하시겠어요?
🧠 ImageFX 🧪 Whisk