【问题标题】:mysql: SHOW TABLES - define column namemysql: SHOW TABLES - 定义列名
【发布时间】:2023-04-01 08:37:01
【问题描述】:

我正在用“LIKE”做一个 mySQL 的“SHOW TABLES”。例如:

show TABLES like 'address_%'

... 返回所有以 'address_' 开头的表。效果很好。

返回的表名有一个列名

Tables_in_username_users (address_%)

有没有办法在“SHOW TABLES”命令中定义该列的名称(比如“地址表”)?

这不仅更容易,而且如果我更改“like”搜索条件,列名也会发生变化,这在 PHP 中处理结果时会出现问题,因为 like 值是关联数组中的名称,我希望有一个已知列名?

举一个具体的例子,要求如下:

=== 已编辑问题 ===

对任何混淆表示歉意。

如果我说:

show TABLES like 'address_%'

我得到一个返回的表列表。那就是:

Tables_in_username_addresses (address_%)    
address_13e625c01bea04b1d311
address_147e32243c710542fb43
address_4f83b2740fc4f038775a

我的问题是,我如何指定列名的名称而不是让它被称为'Tables_in_username_addresses (address_%)'

【问题讨论】:

  • 你能举一个更具体的例子吗?就实际名称而言,尚不清楚您要在这里处理什么。
  • 我想你的问题的答案在这里 - stackoverflow.com/questions/193780/…
  • 对任何混淆表示歉意。如果我说: show TABLES like 'address_%' 我会得到一个返回的表列表。即: Tables_in_username_addresses (address_%) address_13e625c01bea04b1d311 address_147e32243c710542fb43 address_4f83b2740fc4f038775a 我的问题是,我如何指定列名的名称而不是让它被称为 'Tables_in_username_addresses (address_%) 'G

标签: mysql sql data-dictionary


【解决方案1】:

您可以自己查询信息架构:

SELECT table_name AS address_tables
FROM   information_schema.tables
WHERE  table_name LIKE 'address_%';

【讨论】:

  • 谢谢 - 但我正在专门查看“显示表”命令。我试图通过编辑问题来澄清。
  • 啊——这篇文章——stackoverflow.com/questions/6925949/… 说这是不可能的(AFAIK)
  • ...所以你是对的。仍然有兴趣知道“SHOW TABLES”是否不可能
  • 确实,AFAIK 这是不可能的。但show tables 只是查询information_schema 的语法糖。为什么不直接查询呢?
  • 谢谢 - 因为我不确定“table_name”应该是什么。我认为这是一个表名:-)。但我刚刚尝试了你上面所说的,它奏效了。谢谢你!
猜你喜欢
  • 1970-01-01
  • 2011-10-06
  • 2011-03-25
  • 2012-07-23
  • 2021-08-07
  • 2017-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多