mysql - SQL - 获取包含特定记录的数据库

标签 mysql

所以最初我将其作为测试运行。

SELECT DISTINCT table_schema FROM information_schema.columns WHERE table_schema LIKE '%or';

我环顾四周,找到了显示包含特定表的所有数据库的查询。

然而,是否可以让查询更进一步并执行以下操作:

“选择所有具有特定表的数据库,并且在该表中的特定列中具有特定记录。”?

最佳答案

你不能用 SQL 语句做你想做的事。

但是,您可以使用 SQL 生成您想要的语句。基本语句是:

select "tablename"
from tablename
where columnname = value
limit 1

请注意,值可能需要用单引号括起来。您可以使用以下方法生成:

select concat('select "', c.table_name, '" ',
              'from ', c.schema_name, '.', c.table_name, ' ',
              'where ', c.column_name, ' = ', VALUE, ' '
              'limit 1'
             )
from information_schema.columns c
where c.table_name = TABLENAME and c.column_name = COLUMN_NAME;

要将所有语句放在一个长 SQL 语句中,请使用:

select group_concat(concat('select "', c.table_name, '" as table_name',
                           'from ', c.schema_name, '.', c.table_name, ' ',
                           'where ', c.column_name, ' = ', VALUE, ' '
                           'limit 1'
                          ) SEPARATOR ' union all '
                   )
from information_schema.columns c
where c.table_name = TABLENAME and c.column_name = COLUMN_NAME;

然后我会复制生成的 SQL 语句并运行它。如果愿意,您可以添加一个prepare 语句并动态运行它。

关于mysql - SQL - 获取包含特定记录的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21247008/

相关文章:

mysql - 如何获取mysql中的Rank?

mysql 外键引用语法错误

mysql - phpMyAdmin 不允许访问

mysql - Rails 中的 User.select ('*' ) 与 User.all 之间有区别吗

MySQL:将多个 MAX() 选择与数组组合的最佳方法?

mysql - IFNULL 无法正常工作

mysql - 获取从 CDbCriteria 生成的 SQL

php - 如何定义何时应该隐藏 "Show More"按钮?

java - 如何使用 Entity Manager 和 GenericDao Bean 和 Tomee 来持久化对象

php - 在 PHP 中动态加载表单字段