mysql哪些版本支持使用*.*作为数据库和表名的通配符
时间: 2023-07-31 21:08:25 浏览: 52
从 MySQL 8.0.14 版本开始,*.* 可以被用于在一些语句中代替数据库名或表名。在这个版本之前,使用 *.* 作为通配符是不被支持的。
举个例子,以下语句可以在 MySQL 8.0.14 及更高版本中正常工作:
```
SELECT * FROM *.* WHERE column = 'value';
```
这条语句可以选择所有数据库和所有表中 `column` 列等于 `'value'` 的行。
相关问题
grant select,update on *.* to 'usertest'@'localhost' -> identified by 'testpwd'; 这段代码为什么报错
这段代码可能报错的原因有以下几种可能:
1. MySQL 版本问题:在某些 MySQL 版本中,可能不支持在 `GRANT` 语句中使用 `*.*` 为数据库和表名的通配符,需要明确指定要授权的数据库和表名。
2. 没有足够的权限:执行 `GRANT` 语句需要具有足够的权限,通常需要具有 `GRANT OPTION` 权限或 `SUPER` 权限。如果当前用户没有这些权限,那么该语句将会报错。
3. 语法错误:执行 `GRANT` 语句时,如果语法错误,也会导致该语句报错。你可以仔细检查语法是否正确,比如检查是否有拼写错误、缺少分号等。
你可以根据报错信息进一步排查问题,并进行调整。
mysql数据库如何模糊查询里面表名
在MySQL数据库中,要模糊查询表名,我们可以借助`LIKE`关键字和通配符来实现。
1. 使用`SHOW TABLES`语句查询数据库中所有的表名。
2. 结合`LIKE`关键字和通配符进行模糊查询。通配符`%`表示匹配任意字符的字符串,下划线`_`表示匹配单个字符的字符串。例如,`LIKE '%test%'`表示匹配包含"test"的表名。
下面是一个示例查询的语句:
```
SHOW TABLES LIKE '%test%';
```
这个查询语句将返回数据库中包含"test"的表名,不论"test"出现在表名的任何位置。
需要注意的是,模糊查询可能会导致性能问题,因为它需要遍历数据库中的所有表名进行匹配。如果不是必要的情况,建议尽量避免使用模糊查询,以提高查询效率。