我正在搜索一个名为“歌曲”的数据库'它平均有60个表,所有列都有相同的名称(id,name,data)。
SELECT * FROM (all tables in my DB songs) WHERE name LIKE 'a%';
我如何获得符合条件的记录"其中"所有表格?
答案 0 :(得分:1)
您可以使用UNION
SELECT * FROM table1 WHERE name LIKE 'a%'
UNION
SELECT * FROM table2 WHERE name LIKE 'a%' ;
然后......
这里的问题是为什么你有60张相同的表?
答案 1 :(得分:0)
虽然UNION
应该是你应该去的,但你也可以这样做(例如)
select * from sample1,sample3,sample4
where sample1.name like 'M%'
and sample3.name like 'M%'
and sample4.name like 'M%'
此外,如果所有60个表都有相同的列(如您所提到的那样)那么维护那些表的重点是什么?为什么不是一张桌子?
答案 2 :(得分:0)
要获取包含列的所有表格,请输入ID'或者' name'或者'数据'在数据库'歌曲'
SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME
IN (
'id', 'name', 'data'
)
AND TABLE_SCHEMA = 'songs'
我想不出为什么有60张桌子?