database
==========brand_1(table)
------------------product_1
------------------product_2
==========brand_2(table)
------------------product_1
------------------product_2
所有行结构都有此
ID,PRODUCT_TYPE,PRODUCT_NAME
我被困在这里
$table_sql = "SHOW TABLES";
# get table name
$tables = $connection->_query($table_sql);
while (($table = $tables->fetch(PDO::FETCH_NUM)) !== false)
{
$fields = $connection->prepare("SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMN WHERE PRODUCT_TYPE");
$fields->execute();
}
我的问题如何从所有表中获取所有PRODUCT_TYPE =“汽车”?如果我回显$ tables,我已经显示了表名。我的意图是获取所有表名称1st,然后以某种方式循环并获取所有PRODUCT_TYPE并存储到数组。
我怎么做到的?
答案 0 :(得分:1)
创建所有表名的数组,在这里找到这个FLAG,并在foreach中创建SQL查询,如:
SELECT COLUMN_NAME FROM brand_1 WHERE PRODUCT_TYPE = 'cars'
UNION
SELECT COLUMN_NAME FROM brand_2 WHERE PRODUCT_TYPE = 'cars'
UNION ........
foreach like:
$query = '';
foreach (array_of_dbtables as $table)
$query += ' UNION SELECT COLUMN_NAME FROM ' . $table . ' WHERE PRODUCT_TYPE = "cars" ';
并且您必须为数组中的第一项添加IF,然后您不使用UNION。
欢迎您,如果有助于将答案标记为正确而其他人,那就过得愉快