我有三个表,当我从他们检索数据时,我也想得到表名

时间:2017-04-21 19:13:11

标签: php mysql

$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());

我有三个表,当我从中检索数据时,我也希望得到表名,知道这个数据属于这个表,如何根据数据检索表名,请建议我。

2 个答案:

答案 0 :(得分:2)

您可以轻松做到的是:

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

您始终可以在选择中添加字符串或数字作为列。每一行都是一样的。

答案 1 :(得分:0)

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

由于您使用的是UNION,基本上只有3个选择,所以您需要做的就是每个选择的结尾 变化

 SELECT sno,name,email,phone,smpc

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

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