在MySQL中,可以使用SUBSTRING_INDEX函数来分割版本号字符串并进行比较。以下是一个示例,假设我们有一个名为sys_version的表,其中包含一个名为version的字段,我们想要找出所有大于指定版本号4.2.1的记录。
SELECT
*
FROM
(
SELECT
version,
SUBSTRING_INDEX( SUBSTRING_INDEX( version, '.', 1 ), '.', - 1 ) > 4
OR (
SUBSTRING_INDEX( SUBSTRING_INDEX( version, '.', 1 ), '.', - 1 ) = 4
AND (
SUBSTRING_INDEX( SUBSTRING_INDEX( version, '.', 2 ), '.', - 1 ) > 2
OR (
SUBSTRING_INDEX( SUBSTRING_INDEX( version, '.', 2 ), '.', - 1 ) = 2
AND SUBSTRING_INDEX( SUBSTRING_INDEX( version, '.', 3 ), '.', - 1 ) > 1
))) AS version_number
FROM
sys_version
ORDER BY publish_time
) versions_split
WHERE
versions_split.version_number = 1
备注:集合返回的只有1和0,versions_split.version_number == 1 ? 大于:小于