2012-10-23 4 views
1

mysql 문이 테이블의 필드를 선택할 수 있습니까? 예 : SELECT * FROM * WHERE ? IN (SELECT * FROM *) 특정 표나 필드에 종속되지 않는 일반 검색 방법을 구현합니다. 방금 SQL 명령을 사용하여 데이터베이스의 모든 테이블을 나열 할 수 있다고 읽었습니다. SHOW TABLES 이 작업을 수행하는 방법에 대해 알고 있습니까? 감사합니다.테이블에서 임의의 필드를 선택

+0

같은

그것을합니까 쿼리 구축 할 수 있습니다 SQL에서만 있어야하거나 PHP와 같은 것을 사용할 수 있습니까? – Marc

+0

이 게시물에서 다루는 내용은 여러 가지 해결책이 있습니다. http://stackoverflow.com/questions/562457/search-for-all-occurrences-of-a-string-in-a-mysql-database – mikeswright49

+0

@Marc :) 아니요, PHP로만 가능합니다 (단, PHP로 작업하고 있기 때문에) – Copernic

답변

1

당신은 PHP에서 이런 식으로 뭔가를 시도 할 수 다음

$getTables = mysql_query("show tables"); 
$tmpString = ''; 
while ($table_data = mysql_fetch_row($getTables)) 
{ 
    $tmpString.=$table_data[0].','; 
} 
$ALL_DATABASE_TABLES = substr($string,0,strlen($tmpString)-1); //Remove the last , 

당신의 모든 테이블을 가지고 당신이

$qry = "SELECT * FROM $ALL_DATABASE_TABLES" 
+0

감사합니다. 그것은 완벽 !! – Copernic

+0

실제로 우아한 방식은 아니지만 작동 할 것입니다.) 기꺼이 도와 드리겠습니다. – Marc

+0

더 나은 방법을 찾고있는 중에 사용하려고합니다. :) – Copernic

0

동적 쿼리 메커니즘을 사용하여 절차를 만듭니다. 아래 :

CREATE PROCEDURE dynamicQuery() 
    BEGIN 
    SET @tableName := 'TABLENAME1'; 
    SET @SqlStr = 'SELECT * FROM @tableName'; 
    PREPARE n_StrSQL FROM @SqlStr; 
    EXECUTE n_StrSQL; 
    DEALLOCATE PREPARE n_StrSQL; 
END 
+0

고맙다. :) 만약 내가한다면 : 'SELECT * FROM table1, table2, ...., table200 WHERE? IN (SELECT * FROM table1, table2, ...., table200); '그렇지 않습니까? – Copernic

+0

@Mehdi : 아니요,'Select * from Table1' 또는'select * from Table2'를 실행하는 것과 같습니다. 내가 말하고자했던 것은 동적 쿼리를 구성하여 변수를 작성하고 실행할 수 있다는 것입니다. 당신에게 달려 있습니다. 당신이 만들고자하는 쿼리는 무엇입니까? –