• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql_field_table在union后无效?

php 搞代码 3年前 (2022-01-23) 20次浏览 已收录 0个评论
文章目录[隐藏]

———————
mysql_field_table 是获取数据表名的函数,
正常情况下的的sql select 只查询1个表,是可以执行,
请问:当sql select在union查询多个表之后,请问怎么样获取多个表名?
———————
可以执行的代码:
//sql select 只查询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 select在union查询多个表之后,请问怎么样获取多个表名?
———————
可以执行的代码:
//sql select 只查询1条数¥本文来源gaodai#ma#com搞@@代~&码网^搞gaodaima代码

<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>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql_field_table在union后无效?
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址