有一个包含很多表的数据库。 我需要从数据库中导出某个用户的所有信息。
是否可以做这样的事情?
Select * from * where user_id='123';
答案 0 :(得分:0)
不,这不是有效的SQL语法。表名必须在查询中显式。
我们可以为每个包含名为user_id
...
SELECT * FROM mytable WHERE user_id = '123';
SELECT * FROM othertable WHERE user_id = '123';
SELECT * FROM anothertable WHERE user_id = '123';
SELECT * FROM anotherone WHERE user_id = '123';
为了帮助我们生成语句,我们可以获取当前数据库中包含名为user_id
的列的表列表...
SELECT CONCAT('`',c.table_schema,'`.`',c.table_name,'`') AS `-- table`
FROM information_schema.columns c
WHERE c.table_schema = DATABASE()
AND c.column_name = 'user_id'
ORDER BY c.table_name
我们还可以在SELECT列表中扩展表达式以生成完整的SELECT语句。