繁体   English   中英

我有三个表,当我从它们中检索数据时,我也想获取表名

[英]i have three tables and when i retrieve data from them i also want to get the table name too

$raw_results = mysql_query("SELECT sno,name,email,phone,smpc FROM existing_sales_details
    WHERE (`sno` LIKE '%".$query."%') OR(`name` LIKE '%".$query."%') OR (`email` LIKE '%".$query."%') OR  (`phone` LIKE '%".$query."%') OR (`smpc` LIKE '%".$query."%')
    UNION 
    SELECT sno,name,email,phone,smpc FROM sale_details
    WHERE (`sno` LIKE '%".$query."%') OR(`name` LIKE '%".$query."%') OR (`email` LIKE '%".$query."%') OR  (`phone` LIKE '%".$query."%') OR (`smpc` LIKE '%".$query."%')
    UNION
    SELECT sno,name,email,phone,smpc FROM uncharge
    WHERE (`sno` LIKE '%".$query."%') OR(`name` LIKE '%".$query."%') OR (`email` LIKE '%".$query."%') OR  (`phone` LIKE '%".$query."%') OR (`smpc` LIKE '%".$query."%')")
    or die(mysql_error());

我有三个表,当我从它们中检索数据时,我也想获取表名,以知道此数据属于该表,我如何才能根据数据检索表名,请建议我。

您可以轻松做到的是:

SELECT colum1, column2, 'tableName1' as tableName FROM tableName1
UNION
SELECT colum1, column2, 'tableName2' as tableName FROM tableName2

您始终可以在选择中添加字符串或数字作为列。 每行都相同。

除了旧版mysql库存在的问题外,返回表名实际上相当容易。

由于您使用的是UNION,实际上需要3个选择,所以您要做的就是在每个选择的末尾进行更改。

 SELECT sno,name,email,phone,smpc

 SELECT sno,name,email,phone,smpc,'XXXX' AS tablename

并在每个查询中将XXXX替换为表名

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM