【问题标题】:Querying system data in MySQL在 MySQL 中查询系统数据
【发布时间】:2014-01-16 19:56:45
【问题描述】:

我正在尝试在 MySQL 中查找列名。

我在 SQL Server 中使用这样的东西:

SELECT
  sysobjects.name AS table_name, 
  syscolumns.name AS column_name, 
  systypes.name AS datatype, 
  syscolumns.LENGTH AS LENGTH
FROM sysobjects 
INNER JOIN
  syscolumns ON sysobjects.id = syscolumns.id 
INNER JOIN
  systypes ON syscolumns.xtype = systypes.xtype
WHERE (sysobjects.xtype = 'U')
AND (UPPER(syscolumns.name) like upper('%code%'))
ORDER BY sysobjects.name, syscolumns.colid

它返回一个表的列表及其列以及每列的数据类型和长度。在 SQL Server 中,此信息存储在 sysobjectssyscolumnssystypes 表中。在 MySQL 中哪里可以找到类似的信息?

【问题讨论】:

  • 这是一个答案吗? xD
  • 你想用这个查询来达到什么目的?这可能会帮助某人回答是否可以在 mysql 中完成(尤其是如果他们不熟悉 SQL Server)。
  • @AdamPorad,它查找包含列名 LIKE %some_value% 的表的查询。
  • @fthiella 抱歉,我不会说英语:P

标签: mysql sql-server database


【解决方案1】:

您可以在 MySQL 中查询 Information Schema 以获得类似的信息

SELECT * FROM INFORMATION_SCHEMA.TABLES 
SELECT * FROM INFORMATION_SCHEMA.COLUMNS 

注意仅适用于 MySQL 5.0 或更高版本,这里是 MySQL 中信息架构的完整文档 (http://dev.mysql.com/doc/refman/5.1/en/information-schema.html)

【讨论】:

  • 作为重要说明,这些也适用于 SQL Server,因此可以使用这些标准视图重写原始查询。
  • 我正在尝试搜索列名。
  • columns 表中选择时,仅将该列添加到 where 子句。 here are documentation on column table
猜你喜欢
  • 2013-01-19
  • 1970-01-01
  • 2013-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-09
  • 2013-07-16
相关资源
最近更新 更多