gpt4 book ai didi

mysql db 无法识别有效连接

转载 作者:可可西里 更新时间:2023-11-01 08:35:31 26 4
gpt4 key购买 nike

我不太确定这里的问题是什么,我只知道数据库没有正常工作。

两个展示了一些基本的数据结构,表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
'

最佳答案

you guys hit the nail right on the head. it was extra white space either at the front or end of those values. What would be the best way to solve this?

  1. 修复您的应用程序代码,使此类数据不会进入数据库;如果这不可能,您可以在数据库中定义触发器以在写入操作期间根据需要去除字符:

    CREATE TRIGGER oreData_ins  BEFORE INSERT ON oreData  FOR EACH ROW
    SET NEW.name = TRIM(NEW.name);

    CREATE TRIGGER oreData_upd BEFORE UPDATE ON oreData FOR EACH ROW
    SET NEW.name = TRIM(NEW.name);

    CREATE TRIGGER fleetLog_ins BEFORE INSERT ON fleetLog FOR EACH ROW
    SET NEW.item = TRIM(NEW.item);

    CREATE TRIGGER fleetLog_upd BEFORE UPDATE ON fleetLog FOR EACH ROW
    SET NEW.item = TRIM(NEW.item);
  2. 更新现有数据:

    UPDATE oreData  SET name = TRIM(name);
    UPDATE fleetLog SET item = TRIM(item);

关于mysql db 无法识别有效连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14143541/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com