나는이 구성을 저장하는 것입니다 조건부로 mysql에서 두 행을 선택 하시겠습니까?
id | package | env | key | value
int | varchar | varchar | varchar | varchar
처럼 ENV가
null
하지만 같은 행이 자동 증가로 다시 (다른 ID를 표시 수있는 곳, 그래서 행이 데이터베이스에 존재하게 보이는 테이블이) 여러 번, 다른 env
값. 내가 원하는 무엇
는 모든 행 where package = 'something'
및 env is null
얻을 수 있지만 행이 같은 package
및 key
및 env = 'something_else
에있는 경우 다음 내가 대신 행 env is null
의 해당 행을 반환합니다. 그래서
1 | something | null | title | a default title
2 | something | testing | title | a testing title
3 | something | development | title | a development title
4 | something | null | byline | a default byline
5 | another | null | title | another default title
6 | another | testing | title | another testing title
나는 두 개의 쿼리를 실행할 수 난 다시 원하는 행이
2 | something | testing | title | a testing title
4 | something | null | byline | a default byline
입니다 패키지 something
과 ENV testing
사용하는 경우, 하나를 얻을 모든 행 package = something
그리고 env is null
그리고 또 다른 쿼리가 package = something
과 env = testing
인 다음 두 번째 결과를 첫 번째 병합합니다. 그러나 하나의 쿼리로이 작업을 수행하는 방법이 있습니까?
왜'testing'이 아닌'development' 또는 둘 다입니까? 그리고 왜 아직도'null' 결과가 나오나요? –
그들은 다른 환경이며,'null' = 디폴트 값,'testing' = 우리가 테스트 환경에있을 때의 설정 오버라이드,'deveopment' = 우리가 개발 환경에있을 때를위한 설정 오버라이드, 그래서. 우리는 항상 기본 설정을 원하고 현재 환경에 대한 재정의가 존재하면 기본 설정 행 (일명 env가 null 임) 대신에 그 값을 원합니다. – Hailwood
say igniter 또는 laravel config의 컨텍스트에서 생각해보십시오. config 배열을 포함하는 기본 config.php를 가지고 있다면 환경에 있다면 우리가 넘기고 싶은 모든 키를 가진 자신 만의 config.php가있는 환경에 맞는 다른 폴더를 갖게 될 것입니다. – Hailwood