我有一个数据库,其中两个表有名为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中并从那里将它导出到一个表中我将该表添加到我的数据库中,查询运行正常,所以关闭(虽然我希望我能弄清楚如何为将来的参考实际解决这个问题)。