이것은 내 문제입니다. 이름이 매개 변수화 된 테이블의 행을 확인하고 싶습니다. table_X
과 같습니다. X 값은 다른 테이블에서옵니다. 예를 들어 주 테이블의 경우 c_id
열과 X 열이 있습니다. 조인 할 테이블의 이름은 table_X입니다. 의심 할 여지없이 존재하며, 같은 열 c_id
을가집니다. 이 테이블에 c_id
의 값이 있는지 확인하기 위해 합류한다.매개 변수화 된 테이블 이름
뷰에 매개 변수화 된 테이블 이름을 넣을 수 없기 때문에 뷰를 시도했지만 성공하지 못했습니다. 절과 다른 것들을 어디에서 매개 변수화 할 수는 있지만 테이블 이름은 없습니다.
내가
, 다른 그것은 쓸모가 없다.
는
- 내가 함수,하지만 시도했습니다
은 "동적 SQL이 저장 기능 또는 트리거에서 허용되지 않습니다"
SET @q = CONCAT('select blabla from table_', X);
PREPARE stmt FROM @q;
EXECUTE stmt;
하지만 절차는 반환하지 수있는 값으로, 절차를 시도했습니다, 나는 매개 변수가있는 테이블의 c_id
값이 있는지 알 필요가 있기 때문에 내가 필요
그래서이 데이터를 추출하기 위해 무엇을 할 수 있는가? 이 뷰/함수/무엇이든 PHP에서 호출하고, 나는 PHP 쪽에서 두 가지 쿼리를 통해 할 수 있음을 알고 있지만, 향후 구현을 위해 db 쪽에서해야 할 필요가 있습니다. 가능합니까?
참고 : DB의 구조를 수정할 수 없습니다. btw, Limesurvey db, 미친 db 구조처럼 들리는군요?
이러한 종속성을 제거하려면 데이터베이스를 리팩토링해야하는 것 같습니다. – eykanal