Php 如何使用包含2个小数点的数字获得更大的值

Php 如何使用包含2个小数点的数字获得更大的值,php,mysql,Php,Mysql,我们有没有办法找到哪个版本更高,也就是说,如果php或mysql中的1.0.1大于1.0.13 收到任何帮助, 谢谢是一个内置的PHP函数,用于实现这一点(比较版本号);那会满足你的要求 version_compare('1.0.1', '1.0.13'); // -1 version_compare('1.0.1', '1.0.1'); // 0 version_compare('1.0.13', '1.0.1'); // 1 从文档中: 如果第一个版本低于当前版本,version_com

我们有没有办法找到哪个版本更高,也就是说,如果php或mysql中的1.0.1大于1.0.13

收到任何帮助, 谢谢

是一个内置的PHP函数,用于实现这一点(比较版本号);那会满足你的要求

version_compare('1.0.1', '1.0.13'); // -1
version_compare('1.0.1', '1.0.1'); // 0
version_compare('1.0.13', '1.0.1'); // 1

从文档中: 如果第一个版本低于当前版本,version_compare()将返回-1 第二,如果相等,则为0,如果第二个较小,则为1

是一个内置的PHP函数,用于比较版本号;那会满足你的要求

version_compare('1.0.1', '1.0.13'); // -1
version_compare('1.0.1', '1.0.1'); // 0
version_compare('1.0.13', '1.0.1'); // 1

从文档中: 如果第一个版本低于当前版本,version_compare()将返回-1 第二,如果相等,则为0,如果第二个较小,则为1


这里有一个漏洞-尽管,巧妙地说,这个漏洞也暴露了这种方法的一个缺陷

SELECT INET_NTOA(GREATEST(INET_ATON('1.0.1'),INET_ATON('1.0.13'))) greatest;
+----------+
| greatest |
+----------+
| 1.0.0.13 |
+----------+

这里有一个黑客-虽然,巧妙地说,这个黑客也抛出了这种方法的缺陷之一

SELECT INET_NTOA(GREATEST(INET_ATON('1.0.1'),INET_ATON('1.0.13'))) greatest;
+----------+
| greatest |
+----------+
| 1.0.0.13 |
+----------+
还有一个黑客:

select
    concat(substring_index('1.0.1', '.', 1), substring_index('1.0.1', '.', -2)) + 0 as ver1,
    concat(substring_index('1.0.13', '.', 1), substring_index('1.0.13', '.', -2)) + 0 as ver1,
    concat(substring_index('1.0.1', '.', 1), substring_index('1.0.1', '.', -2)) + 0
    >=
    concat(substring_index('1.0.13', '.', 1), substring_index('1.0.13', '.', -2)) + 0 as result

+------+-------+--------+
| ver1 | ver1  | result |
+------+-------+--------+  
| 10.1 | 10.13 | 0      | 
+------+-------+--------+
还有一个黑客:

select
    concat(substring_index('1.0.1', '.', 1), substring_index('1.0.1', '.', -2)) + 0 as ver1,
    concat(substring_index('1.0.13', '.', 1), substring_index('1.0.13', '.', -2)) + 0 as ver1,
    concat(substring_index('1.0.1', '.', 1), substring_index('1.0.1', '.', -2)) + 0
    >=
    concat(substring_index('1.0.13', '.', 1), substring_index('1.0.13', '.', -2)) + 0 as result

+------+-------+--------+
| ver1 | ver1  | result |
+------+-------+--------+  
| 10.1 | 10.13 | 0      | 
+------+-------+--------+
试试这个

select greatest('1.0.1', '1.0.13');
希望这有帮助。

试试这个

select greatest('1.0.1', '1.0.13');

希望这能有所帮助。

大家好,欢迎来到Stackoverflow!请花一分钟时间阅读本教程,了解更好的问题:stackoverflow.com/help/how-to-ask-特别是如何提供一个迄今为止您尝试过的示例:。您好,欢迎来到stackoverflow!请花一分钟时间阅读本教程,了解更好的问题:stackoverflow.com/help/how-to-ask-特别是如何提供一个迄今为止您尝试过的好例子:。