我正在尝试在文本字段上INNER JOIN两个表,但我无法使其工作。 我已经回过头来查看我是否可以确定我的查询在哪里崩溃。 我简化了我的查询只使用一个表,看看我是否可以根据文本字符串从中选择数据。 我无法使它发挥作用。 我觉得自己像个白痴。 这是如此基本,为什么不这样做呢?
select * from `my-table`
where myKey = "some-text-data-that-i-copied-from-the-data-in-the-table";
不返回任何行。 "一些文本数据 - 即-I-复制-从 - - 数据 - 内式表"在现场myKey。我能看到它。它在桌子上!!!
[如果它有所不同我最熟悉使用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
的列相匹配。现在,活动(第2列)始终以逗号终止,所有数据似乎都有效。我无法帮助认为这有点奇怪,并且MySQL数据导入真的不想表现得像这样......现在尝试让我的JOIN工作,这一切都是如何开始的! / p>
感谢所有人,尤其是Rahul的帮助。
......现在JOIN工作......
答案 0 :(得分:1)
完成帖子和评论中的所有修改;我的感觉是,你的列值中有额外的空间,所以你没有得到数据(因为它不匹配确切的字符串)。
所以要么尝试
select * from mymathssowlink
where MyMathsResourceKey
like '%KS2-Number-Counting and Place Value-NC3-Negative Numbers 1%';
(OR)
使用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';
答案 1 :(得分:0)
您可以尝试Select * from table;
,如果有效,请尝试select * from table where key like '%some_text%'
它不是sintax的问题,而是查询本身。