猿问

当格式为 1:2:3:4 时在 PHP 中获取 MySQL 数据

我正在尝试将数据提取到 PHP 以创建一个简单的统计信息页面,对于我的大多数数据库,统计信息都分为单独的列,因此我能够这样做:


    <tbody>

        <?php

        mysqli_select_db($connect, $database);;


        $sql = "SELECT name,kills FROM global_stats ORDER BY kills DESC LIMIT 5";


        $result = mysqli_query($connect, $sql);


        $count = 1;


        while ($row = mysqli_fetch_array($result)) 

        {

            echo "<tr> <td>" . $count . "</td>";

            echo "<td>" . $row['name'] . "</td>";

            echo "<td>" . $row['kills'] .  "</td> </tr>";

            $count++;

        }

        ?>

    </tbody>

尽管在我的一个数据库中,数据以一种奇怪的方式保存,其中每个统计数据都在一个表中,由以下部分分隔: - 有没有一种方法可以获取第二个区域中的所有数据,例如,用户名,然后只对第二个区域进行排序,只输出 5 个结果。

aluckdog
浏览 95回答 1
1回答

梵蒂冈之花

这个查询:SELECT&nbsp;&nbsp; name,&nbsp; CONVERT( SUBSTRING_INDEX( SUBSTRING_INDEX(stats, ':', 2), ':', -1), INTEGER) as killsFROM&nbsp; tableORDER BY kills DESCLIMIT 5将转换第二个字段并返回前 5 个 - 我不知道名称的来源,因为它不在您的屏幕截图中,因此可能需要做更多的工作它通过两次使用子字符串索引来工作。第一次使用(内部)意味着“从左边开始向前计数到第二个定界符并将其用作子字符串的终点”然后第二次使用(外部)意味着“向后计数到第一个定界符并使用它作为子字符串的起点
随时随地看视频慕课网APP
我要回答