有一个包含很多表的数据库。我需要从数据库中导出某个用户的所有信息。
有可能做这样的事情吗?
Select * from * where user_id='123';
不,这不是有效的 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 语句。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句