gpt4 book ai didi

MySQL:SELECT * FROM 表 WHERE 字段 ="some text"不起作用

转载 作者:行者123 更新时间:2023-11-29 00:13:03 25 4
gpt4 key购买 nike

我正在尝试在文本字段上对两个表进行 INNER JOIN,但无法正常工作。我回过头来看看我是否可以确定我的查询失败的地方。我已将查询简化为仅使用一个表,以查看是否可以根据文本字符串从中选择数据。我不能让它工作。我觉得自己像个白痴。这太基础了,为什么不这样做呢?

select * from `my-table`
where myKey = "some-text-data-that-i-copied-from-the-data-in-the-table";

不返回任何行。“我从表中的数据复制的一些文本数据”在字段 myKey 中。我能看到它。它在 table 上!!!

[如果它有什么不同的话,我最熟悉的是使用 Access 前端,并且我正在将我的“技能”移植到 MySQL,因为 MySQL 确实更好..这似乎是有史以来最常见的 SELECT 语句但它什么也没做!]

编辑:

IMSoP 这对任何...有帮助吗

select * from mymathssowlink
where MyMathsResourceKey = 'KS2-Number-Counting and Place Value-NC3-Negative Numbers 1';

编辑 2:

Diego Marinelli - 谢谢 - 这会返回数据

select * from mymathssowlink
where MyMathsResourceKey like '%KS2%';

编辑 3:

这有效...

select * from mymathssowlink
where MyMathsResourceKey like '%KS2-Number-Counting and Place Value-NC3-Negative Numbers 1%';

编辑 4:

但这还是不...

select * from mymathssowlink
where MyMathsResourceKey = 'KS2-Number-Counting and Place Value-NC3-Negative Numbers 1';

不解

表:

CREATE TABLE `mymathssowlink` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`ObjectiveID` varchar(13),
`MyMathsResourceKey` varchar(100),
PRIMARY KEY (`ID`),
UNIQUE KEY `idnew_table_UNIQUE` (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

它是如何修复的:

好吧,很奇怪,但我现在已经解决了简化的问题!我记得在我使用 Access 的日子里,尾随空格是匹配的祸根,而且 MySQL 在这方面似乎有点笨拙。这样的数据没有问题,但字段 MyMathsResourceKey 是每行的最后一位数据,因此没有以逗号结尾。有些行在该列中没有任何数据,因此以逗号而不是 MyMathsResourceKey 数据终止。我通过向我的 csv 添加第三列来修复它,我将字符串“PLACEHOLDER”统一插入其中。我将其与接收数据的表中名为 placeholder 的列相匹配。现在事件(第二列)总是以逗号结尾,所有数据似乎都有效。我忍不住想这有点奇怪,而且 MySQL 数据导入真的不想表现得像这样......现在尝试让我的 JOIN 工作,这一切是如何开始的!

感谢所有人,尤其是 Rahul 的帮助。

...现在加入工作...

最佳答案

查看您的帖子和评论中的所有编辑;我的感觉是,您的列值中存在额外的空间,因此您没有获得数据(因为它与确切的字符串不匹配)。

所以要么试试

select * from mymathssowlink
where MyMathsResourceKey
like '%KS2-Number-Counting and Place Value-NC3-Negative Numbers 1%';

(或)

使用 REPLACE() 函数删除字段值中的所有空格

select * from mymathssowlink
where REPLACE(MyMathsResourceKey, ' ', '')
= 'KS2-Number-Counting and Place Value-NC3-Negative Numbers 1';

如果您可以保证空格仅出现在字符串的左/右端,您也可以使用 TRIM() 函数。

select * from mymathssowlink
where TRIM(MyMathsResourceKey)
= 'KS2-Number-Counting and Place Value-NC3-Negative Numbers 1';

关于MySQL:SELECT * FROM 表 WHERE 字段 ="some text"不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24098052/

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