1

我的表中有一个名为 IPAddress 的列。我想按排序顺序获取 IPAddress。

IP地址:
8.123.10.124
192.23.34.45

如果我使用按 IPAddress 排序,我将得到输出

192.23.34.45
8.123.10.124

因为按字符串排序。

但我希望输出为

8.123.10.124
192.23.34.45

如何编写相同的查询。有什么方法可以在 HSQL 中拆分字符串

4

1 回答 1

1

您首先需要将 IP 地址从字符串转换为整数。例如,IP 地址 1.1.1.1 将是 001001001001 您可以使用以下逻辑

    while(ip[j]!='\0')
        {
         if(ip[j]!='.')
           a[i]=a[i]*10+ip[j]-'0';
         else
           i++;
         j++;
        }

之后,您可以通过适当的数字 (1e9,1e6,1e3,1e0) 多个 a[0],a[1].... 并添加 . 但是,您需要采取一些预防措施,例如存储 IP 地址的字符串没有保存任何空格,并使用 unsigned long long int 以整数形式存储 IP 地址

于 2016-06-11T12:27:37.987 回答