Php MySQL:information\u schema.columns bug?
为什么Php MySQL:information\u schema.columns bug?,php,mysql,information-schema,Php,Mysql,Information Schema,为什么information\u schema.columns总是重复结果?比如说, SELECT column_name FROM information_schema.columns WHERE table_name = 'root_blocks' 我会得到这个 column_name blc_id blc_email cat_id blc_created blc_updated blc_id blc_email cat_id blc_created blc_updated 当我试
information\u schema.columns
总是重复结果?比如说,
SELECT column_name
FROM information_schema.columns
WHERE table_name = 'root_blocks'
我会得到这个
column_name
blc_id
blc_email
cat_id
blc_created
blc_updated
blc_id
blc_email
cat_id
blc_created
blc_updated
当我试图通过phpmyadmin进行查询时,其他表上的重复项变得不可预测
我怎样才能使它不重复
谢谢
编辑:
SELECT column_name
FROM information_schema.columns
WHERE table_name = 'root_blocks'
AND `table_schema` = 'SCHEMA_NAME'
请试试这个
如果要从所有数据库中选择并获取唯一的列名,请尝试此操作
SELECT DISTINCT(column_name)
FROM information_schema.columns
WHERE table_name = 'root_blocks'
请试试这个
如果要从所有数据库中选择并获取唯一的列名,请尝试此操作
SELECT DISTINCT(column_name)
FROM information_schema.columns
WHERE table_name = 'root_blocks'
可能在多个模式中有相同的表 如果您运行:
SELECT table_schema, column_name
FROM information_schema.columns
WHERE table_name = 'root_blocks'
可能在多个模式中有相同的表 如果您运行:
SELECT table_schema, column_name
FROM information_schema.columns
WHERE table_name = 'root_blocks'
什么版本的MySQL服务器和客户端?MySQL客户端版本:mysqlnd 5.0.7。我在wamp服务器上…什么版本的MySQL服务器和客户端?MySQL客户端版本:mysqlnd 5.0.7。我在wamp服务器上…是的,我刚刚做了。但它现在返回零结果…:(您是否在“schema\u name”位置替换为您的架构名称?没有-我认为这就是它不起作用的原因。我如何知道我的架构名称?谢谢。如果不知道架构名称,请尝试此选择DISTINCT(列名称)从信息_schema.columns,其中table_name='root_blocks'@karthing:这是我的完整查询。刚刚意识到
table_schema
是我的数据库名!哈哈,但我仍然不知道为什么会出现此警告。请查看我上面的编辑。谢谢。是的。但现在它返回了零结果…:(您是否将“schema\u name”替换为您的架构名称?没有-我认为这就是它不起作用的原因。我如何知道我的架构名称?谢谢。如果不知道架构名称,请尝试此选择(列名称)从information_schema.columns WHERE table_name='root_blocks'@karthing:这是我的完整查询。刚刚意识到table_schema
是我的数据库名!lol,但我仍然不知道为什么我会有这个警告。请查看我上面的编辑。谢谢。我想我还有其他数据库具有相同的表结构、名称等,这会导致d重复。那么我怎样才能只针对特定的数据库呢?谢谢。@lauthiamkok:您在schema列中看到不同的值了吗?数据库可能也会显示在table_catalog列中,但我不确定that@lauthiamkok:我刚刚检查:数据库名称显示在表_模式中,因此只需添加WHERE子句将其限制在中的数据库中即可问题。是的,谢谢。但是我得到了一个我不明白的警告…请看我上面的编辑。@lauthiamkok:不知道。我不知道你正在使用的SQL客户端。我想我还有其他数据库,它们具有相同的表结构、名称等,这会导致重复。那么我如何只针对特定的数据库呢?谢谢。@lauthiamkok:你知道吗模式列中是否有不同的值?数据库可能也会显示在table_catalog列中,但我不确定that@lauthiamkok:我刚刚检查:数据库名称显示在表_架构中,因此只需添加一个WHERE子句以将其限制在所讨论的数据库中。是的,收到了,谢谢。但是我收到了一个警告,我不理解它…请请看我上面的编辑。@lauthiamkok:不知道。我不知道您正在使用的SQL客户机