2012-09-17 2 views
1

DB에 8 개의 테이블이 있습니다.이 테이블에는 ID 번호를 검색하는 데 사용할 테이블이 있지만 그 테이블에 사용할 테이블의 이름을 검색하고 싶습니다. ...mysql 및 PHP를 사용하여 데이터를 저장하는 테이블의 이름을 찾으십시오.

if($tablename == 'accounts'){ 
    echo 'value found in accounts'; 
} 

mysql 쿼리는 무엇입니까?

감사합니다 (I이 결합 등 테이블 이름을 얻을 것와 $ TABLENAME에 저장하는 방법 만 조금 도움이 필요하지 않습니다)

+0

선택 개별적으로 각 테이블에서, 당신은 – slugonamission

+0

@slugonamission을 원하는 데이터를 포함하는 확인하십시오. –

+0

죄송합니다. 나는 그가 원하는 행이 들어있는 테이블로 해석했습니다. – slugonamission

답변

1

처음에 테이블 이름을 모르는 경우 어떻게 테이블의 데이터를 검색 할 수 있습니까?

그래서 나는 이미 테이블 이름을 알고 있고, SHOW TABLES과 같은 것을 필요로하지 않는다고 가정합니다. 예 : 형태

WHERE (table1.field LIKE '%search%' OR table2.field2 LIKE '%search%' OR ...) 

한번의 WHERE 당신이 그것을 일치 알고 행을 검색하지만, 경기가 발생했던 위치를 알 수 없습니다. 그리고 JOINed 대신 8 개의 직선 쿼리를 실행하는 것은 옵션이 아닙니다. 행을 검색 할 때

SELECT ..., CASE 
    WHEN accounts.field1 LIKE '%search%' THEN 'accounts' 
    WHEN customers.name LIKE '%search%' THEN 'customers' 
    ... 
    END AS wtf FROM <rest of your query> 

그런 다음 PHP에서, 당신은 단지 필드를 사용합니다 :이 경우

, 당신은 당신이 필요한 당신에게 플래그로 선택한 필드를 보충해야합니다 : 그는 테이블의 이름을 원하는 :

print "Value found in {$row['wtf']}"; 
+0

안녕하세요, 나는 테이블의 이름을 알고, 어떤 테이블 값이 발견되었습니다 쿼리를 싶습니다 – tatty27

+0

그것을 주셔서 감사합니다, 그것은 필요한 결과를 달성했습니다. – tatty27

2
SELECT table_name FROM INFORMATION_SCHEMA.TABLES 
    WHERE table_schema = 'db_name' 

19.12. The INFORMATION_SCHEMA TABLES Table

+0

도대체 그가 물었던 게 아니야. – xception

+0

@xception : 정확히 그가 물었던 것이다. –

+0

그게 그가 물어봤을거야. –

0

'표시 테이블'열어 본다고해도, 여전히 MySQL에서 사용하고 있습니까? :)

관련 문제