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

时间:2016-07-27 08:47:33

标签: php mysql

我们有什么方法可以找到哪个更大的版本,即在php或mysql中查找1.0.1是否大于1.0.13 ...

任何有助于帮助的人, 谢谢

4 个答案:

答案 0 :(得分:3)

version_compare是一个内置的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。

http://php.net/version_compare

答案 1 :(得分:0)

这是一个黑客攻击 - 尽管如此,这个黑客行为还会引发这种方法的一个缺陷......

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

答案 2 :(得分: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      | 
+------+-------+--------+

答案 3 :(得分:0)

试试这个。

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

希望这有帮助。