DAO를 통해 쿼리를 N 번 실행하는 루프가 있습니다. 내 경우에는 값이 "123456789"인 객체가 있습니다. 첫 번째 턴에서는 특정 테이블에 대한 쿼리를 실행하여 C1
열이 "123456789"와 동일한 모든 레코드를 가져옵니다.SQL 가장 긴 접두사 문자열
두 번째 턴에서는 동일한 테이블에 대한 쿼리를 실행하여 C1
열이 "12345678"과 동일한 모든 레코드를 가져옵니다. 그리고 가장 긴 접두어가있는 레코드를 찾을 때까지 계속합니다.
나는이 쿼리를 여러 번 실행하는 대신, "123456789"문자열을 매개 변수로 사용하고 "123456789"의 가장 긴 접두사 인 C1
레코드를 반환하는 다른 쿼리를 한 번만 실행하는 것이 좋습니다. ". 하지만 나는 Hibernate (가능한 경우)로 그것을하는 방법을 모르거나 다른 해결책이 있다면. MySQL을 사용하고 있습니다.
답변을 주셔서 감사합니다. 하지만 두 가지 질문이 있습니다. 첫째, concat()과 ||의 사용 사이의 차이점은 무엇입니까? 또한이 HQL 문은 다른 DBMS간에 이식성이 있습니까? –
내가 아는 한, || 최대 절전 모드이기 때문에 그 자체의 기능으로 각 데이터베이스로 변환됩니다. concat가 전달되어 특정 데이터베이스에서 작동합니다. –