MySQL / phpmyadmin问题:搜索号码

时间:2017-04-18 20:34:11

标签: php mysql phpmyadmin

我有一个数据库,其中两个表有名为Building Code的列。它在两者中都设置为VARCHAR(5),有时值纯数字(例如:0001),有时它有一个字母(例如:0170A)

此数据库中的两个不同的表称为“buildings”和“newconnections”,我正在尝试执行内部联接。

在其中一个表格中,当我在phpmyadmin中搜索0001时,我没有得到任何结果,但如果我搜索0170A,我会得到正确的结果。在另一个表中,两者都正常工作。这个问题一直影响着我,因为我一直试图对这些数据集进行内部联接。

我尝试过使用LTRIM,RTRIM(这不起作用),我尝试将其作为VARCHAR(5)进行投射(尽管这个查询只是没有产生结果所以我可能做错了)。

如果有帮助,这是我正在尝试执行的内连接:

"SELECT BUILDING_CODE, buildings.BuildingName, buildings.Latitude, buildings.Longitude, FLOOR1, FLOOR2, FLOOR3 
    FROM buildings LEFT JOIN
    (SELECT BUILDING_CODE, 
        SUM(IF(FLOOR_NUMBER = '1', FLOORCONNECTIONS, 0) ) AS FLOOR1,
        SUM(IF(FLOOR_NUMBER = '2', FLOORCONNECTIONS, 0) ) AS FLOOR2,
        SUM(IF(FLOOR_NUMBER = '3', FLOORCONNECTIONS, 0) ) AS FLOOR3
        FROM
        (
            SELECT 
            BUILDING_CODE, FLOOR_NUMBER, COUNT(*) AS FLOORCONNECTIONS
            FROM newconnections GROUP BY BUILDING_CODE, FLOOR_NUMBER
        ) as totals
        GROUP BY BUILDING_CODE
    ) as r ON RTRIM(BUILDING_CODE) = RTRIM(buildings.BuildingCode)";

例如,在给我烦恼的桌子上:

SELECT * FROM newconnections WHERE BUILDING_CODE = '0170A'

返回结果,但

SELECT * FROM newconnections WHERE BUILDING_CODE = '0001'

什么都不返回。

在工作台上:

SELECT * FROM newconnections WHERE BuildingCode= '0170A'

SELECT * FROM newconnections WHERE BuildingCode= '0001'

返回结果

编辑:更多信息。我实际上使用我创建的脚本生成了大量此类数据,并将其插入到文本文件中,然后将其插入到该文件的数据库中。我想它必须有一些奇怪的问题,它是如何打印某些数字的 - 这次把我的数据放到excel中并从那里将它导出到一个表中我将该表添加到我的数据库中,查询运行正常,所以关闭(虽然我希望我能弄清楚如何为将来的参考实际解决这个问题)。

0 个答案:

没有答案