MySQL IF版本< x那么

时间:2016-09-21 20:35:37

标签: mysql

我如何在我的IF正在测试服务器版本号的MySQL中编写IF ... THEN ... ELSE?指出文档的正确部分的指针是值得赞赏的。更多细节非常感谢。

更新

对无意中模糊的问题道歉。

我保留了一个sql脚本,可以在我在机器上部署内容时轻松创建数据库和用户(对我而言)。不同的服务器运行不同版本的软件,我希望使脚本可靠并且版本感知。

3 个答案:

答案 0 :(得分:1)

很难回答这个问题,因为您还没有描述过您尝试做的事情,但是您可能想知道MySQL SQL注释语法的一个简洁功能,以便制作部分内容。查询版本相关。

请参阅http://dev.mysql.com/doc/refman/5.7/en/comments.html

  

如果在“!”字符后添加版本号,则在其中添加语法   仅当MySQL版本大于或时,才会执行注释   等于指定的版本号。中的TEMPORARY关键字   以下注释仅由MySQL 3.23.02或更高版本的服务器执行   更高:

     

CREATE / *!32302 TEMPORARY * / TABLE t(INT);

答案 1 :(得分:0)

您需要使用version全局变量。

mysql> select @@VERSION;
+-----------------+
| @@VERSION       |
+-----------------+
| 5.6.26-74.0-log |
+-----------------+
1 row in set (0.00 sec)

答案 2 :(得分:0)

  • 使用VERSION()函数或@@ VERSION变量获取当前值 mysql版本。
  • 使用IF(条件,value_if_true,value_if_false) 功能进行基本测试。
  • 使用类似SUBSTRING的string functions组合, VERSION和LOCATE提取版本字符串的某些部分。

Ej :(市长版本号,来自'5.6.26-74.0-log'摘录'5'

SELECT SUBSTRING( @@VERSION , 1 , LOCATE( '.' , @@VERSION ) )