>  기사  >  백엔드 개발  >  결합 후 mysql_field_table이 유효하지 않습니까?

결합 후 mysql_field_table이 유효하지 않습니까?

WBOY
WBOY원래의
2016-08-04 09:22:031072검색

——————
mysql_field_table은 데이터 테이블의 이름을 가져오는 함수입니다.
일반적인 상황에서는 sql select가 1개의 테이블만 쿼리하며 실행 가능합니다.
실례합니다: SQL 선택이 통합된 여러 테이블을 쿼리한 후 여러 테이블 이름을 얻는 방법은 무엇입니까?
——————
실행 코드:
//sql 선택 전용 데이터 1개만 쿼리

<code>$sql = "
    SELECT id,title FROM `TABLE1` WHERE id IN($id)
    ORDER BY id DESC
    LIMIT 0,10
";
$result = mysql_query($sql);
$table_name = mysql_field_table($result,0);
echo "<br />表名:$table_name";</code>

——————
질문 코드:

<code>//合并2个表,按时间倒序取出前10条记录
$sql = "
    SELECT id,title FROM `TABLE1` WHERE id IN($id)
    UNION
    SELECT id,title FROM `TABLE2` WHERE id IN($id)
    UNION
    ORDER BY id DESC
    LIMIT 0,10
";
$result = mysql_query($sql);

if( $result ){
    if( mysql_num_rows($result) ){
        $a = array();
        while($arr = mysql_fetch_array($result)){
            $table_name = mysql_field_table($result,0);
            echo "<br />表名:$table_name";
            //***就是在这里
            //***请问各位,怎么获取多个表名
        }
    }
}</code>

——————
경례
감사합니다!

답글 내용:

——————
mysql_field_table은 데이터 테이블의 이름을 가져오는 함수입니다.
일반적인 상황에서는 sql select가 1개의 테이블만 쿼리하며 실행 가능합니다.
실례합니다: SQL 선택이 통합된 여러 테이블을 쿼리한 후 여러 테이블 이름을 얻는 방법은 무엇입니까?
——————
실행 코드:
//sql 선택 전용 데이터 1개만 쿼리

<code>$sql = "
    SELECT id,title FROM `TABLE1` WHERE id IN($id)
    ORDER BY id DESC
    LIMIT 0,10
";
$result = mysql_query($sql);
$table_name = mysql_field_table($result,0);
echo "<br />表名:$table_name";</code>

——————
질문 코드:

<code>//合并2个表,按时间倒序取出前10条记录
$sql = "
    SELECT id,title FROM `TABLE1` WHERE id IN($id)
    UNION
    SELECT id,title FROM `TABLE2` WHERE id IN($id)
    UNION
    ORDER BY id DESC
    LIMIT 0,10
";
$result = mysql_query($sql);

if( $result ){
    if( mysql_num_rows($result) ){
        $a = array();
        while($arr = mysql_fetch_array($result)){
            $table_name = mysql_field_table($result,0);
            echo "<br />表名:$table_name";
            //***就是在这里
            //***请问各位,怎么获取多个表名
        }
    }
}</code>

——————
경례
감사합니다!

Union 이후의 결과 세트는 동일한 데이터베이스 테이블로 간주되므로 여기서 mysql_field_table을 어떻게 얻어도 테이블 이름은 하나만 얻을 수 있습니다. 올바른 접근 방식은 SQL 문을 구성할 때 해당 문이 나오는 데이터베이스 테이블의 이름을 각 레코드에 연결하여 결과 집합에서 이 데이터가 어느 데이터베이스 테이블에서 나오는지 알 수 있도록 하는 것입니다.

<code>$sql = "
    SELECT id,title,'TABLE1' AS ComesFrom FROM `TABLE1` WHERE id IN($id)
    UNION
    SELECT id,title,'TABLE2'              FROM `TABLE2` WHERE id IN($id)
    UNION
    ORDER BY id DESC
    LIMIT 0,10
";</code>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.