【发布时间】:2012-12-18 02:07:47
【问题描述】:
我不太确定问题出在哪里,我只知道数据库工作不正常。
两个显示一些基本的数据结构,表1是这样的
name | inGameID
Azure Plagioclase | 17455
Plagioclase | 18
viscous Pyroxeres| 17460
Onyx Ochre | 1232
表 2 类似于这样
userName | item
sam | Onyx Ochre
mike | viscous Pyroxeres
dave | azure plagioclase
尝试运行此查询时
SELECT fl.item, od.name
FROM oreData od
JOIN fleetLog fl ON lower(od.name) = lower(fl.item)
order by fl.logID asc
结果只是缟玛瑙赭石值。什么时候应该返回更多的数据。 t1.name 和 t2.item 都具有相同的数据类型。我不确定需要更多的细节来帮助诊断这个问题,但我希望对此有更多的关注。我很乐意提供任何进一步的细节。我很抱歉这个太含糊了,我以前从未遇到过这样的问题
你们真是一针见血。在这些值的前面或结尾处都是额外的空白。解决这个问题的最佳方法是什么?
'39';'2';'1';'2001-03-13 00:14:27';'userName';'322';'Vivid Hemorphite
'
'38';'2';'1';'2001-03-13 00:19:28';'userName';'6386';'Azure Plagioclase
'
【问题讨论】:
-
任何值的开头或结尾是否有多余的空格?您可以尝试发布
select name,len(name) from oreData和select item,len(item) from fleetLog的结果吗? -
任一记录中是否有多余的空格?您也可以考虑删除
LOWER()函数调用并改用不区分大小写的排序规则,例如ON od.name = fl.item COLLATE utf8_general_ci. -
@eggyal 我试过有无,结果是一样的。
-
@mellamokb 我将运行这些并将它们粘贴到顶部
-
你试过
ON TRIM(od.name) = TRIM(fl.item)
标签: mysql join sqldatatypes