我想在.sql文件中按MySQL的版本打印查询。
当我使用MySQL 5.6版时,我想打印(2列)
SELECT user, host FROM mysql.user;或者,我使用MySQL版本5.7或8,想要打印(3列)
SELECT user, host, account_locked FROM mysql.user;因为MySQL 5.6版本没有account_locked列。
发布于 2021-01-08 01:16:35
mysql> SELECT * FROM information_schema.GLOBAL_VARIABLES WHERE variable_name = 'version';
+---------------+-----------------+
| VARIABLE_NAME | VARIABLE_VALUE |
+---------------+-----------------+
| VERSION | 5.6.22-71.0-log |
+---------------+-----------------+
1 row in set (0.00 sec)
mysql> SHOW VARIABLES LIKE 'version';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| version | 5.6.22-71.0-log |
+---------------+-----------------+
1 row in set (0.00 sec)
mysql> SELECT @@version;
+-----------------+
| @@version |
+-----------------+
| 5.6.22-71.0-log |
+-----------------+
1 row in set (0.00 sec)在存储过程中,您可以执行如下操作
IF (@@version < "5.7") THEN
SELECT user, host FROM mysql.user;
ELSE
SELECT user, host, account_locked FROM mysql.user;
ENDIF;如果你还需要处理带有"10.x.y“的MariaDB,就会变得更加混乱。而且,如果Percona有任何不同之处,你需要更深入地挖掘“版本”。
https://stackoverflow.com/questions/65608460
复制相似问题