Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用单个Select语句在数据库中的所有表中进行搜索_Mysql_Sql_Select_Union All - Fatal编程技术网

Mysql 使用单个Select语句在数据库中的所有表中进行搜索

Mysql 使用单个Select语句在数据库中的所有表中进行搜索,mysql,sql,select,union-all,Mysql,Sql,Select,Union All,大家好,在MYSQL中使用SELECT语句的任何简单方法。 其思想是尝试使用1语句在数据库1的所有表中进行搜索 提前感谢你我不知道如何获取MySQL中获取的行的当前序号;阅读StackOverflow,您需要一个变量来实现这一点 下面的查询将生成此报告-将其格式化为纯文本并保存到文件以获取SQL脚本: UNION ALL SELECT NAME,ADDRESS,DATA FROM DataBase1.Table1 WHERE ADDRESS IN('India','Japan') UNION

大家好,在MYSQL中使用SELECT语句的任何简单方法。 其思想是尝试使用1语句在数据库1的所有表中进行搜索


提前感谢你

我不知道如何获取MySQL中获取的行的当前序号;阅读StackOverflow,您需要一个变量来实现这一点

下面的查询将生成此报告-将其格式化为纯文本并保存到文件以获取SQL脚本:

UNION ALL SELECT NAME,ADDRESS,DATA FROM DataBase1.Table1 WHERE ADDRESS IN('India','Japan') 
UNION ALL SELECT NAME,ADDRESS,DATA FROM DataBase1.Table2 WHERE ADDRESS IN('India','Japan') 
UNION ALL SELECT NAME,ADDRESS,DATA FROM DataBase1.Table3 WHERE ADDRESS IN('India','Japan') 
然后,您必须从生成的查询中删除第一个
UNION ALL
,或者将其替换为十个空格以保持对齐

SELECT 
  CONCAT (
    'UNION ALL '
  , 'SELECT NAME,ADDRESS,DATA FROM '
  , table_schema
  , '.'
  , table_name 
  , ' WHERE ADDRESS IN(''India'',''Japan'')'
FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema = 'Database1'
如果有办法获取当前行号,可以用表达式替换
CONCAT()
函数的第一个参数:
案例行数\u当1然后是“ELSE”UNION ALL“END时
,以在报告中获得一个完整的SQL语句,准备运行。

您的查询很好。好的,除了最后两个子查询是相同的。枚举表名通常表示错误的数据库规划/设计。请给出解决方案。如上所述,这看起来像是一些错误的设计。如果有一个由其他表引用的地址表,不是更好吗。
SELECT 
  CONCAT (
    'UNION ALL '
  , 'SELECT NAME,ADDRESS,DATA FROM '
  , table_schema
  , '.'
  , table_name 
  , ' WHERE ADDRESS IN(''India'',''Japan'')'
FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema = 'Database1'