Mysql、PDO、PHP:查找给定值的 table_name

问题描述 投票:0回答:1

我需要一些帮助。

在我的数据库中有包含产品详细信息的多个表,每个产品都有一个唯一的ID。

现在我有了给定的产品 ID - 如何获取存储产品的表的名称,因此我的数据库中有不同的表?如何将 table_name 存储在 PHP 变量中以便在另一个 select 语句中重用它?

我在 stackoverflow 上搜索,但只找到了有关获取数据库的所有表名或列名的答案。我正在 mysql/pdo select 语句中寻找一个简单的解决方案。

谢谢您的建议!

mysql select pdo
1个回答
0
投票

要在一组固定的表中搜索,您可以使用

UNION
子句组合各个查询,然后添加硬编码字符串来标识源:

SELECT packaging_id AS product_id, 'packaging' AS table_name
FROM packaging
WHERE name = 'Cardboard box'
UNION ALL
SELECT stationery_id, 'stationery'
FROM stationery
WHERE description = 'Cardboard box'
UNION ALL
SELECT sales_id, 'sales'
FROM sales
WHERE offer = 'Cardboard box'

您需要确保结果集中的每一列具有相同的数据类型,并且您可以使用第一个语句为结果集设置规范化的列名称。

© www.soinside.com 2019 - 2024. All rights reserved.