搜索列时,MySQL不返回任何结果

时间:2016-01-13 19:52:22

标签: mysql

这是我正在使用的命令:

SELECT * FROM pos WHERE word = 'accelerator' OR id = 3;

返回:

'3', 'accelerator\r', '1', NULL, NULL, NULL, NULL, NULL, NULL, NULL

但是当我使用时:

SELECT * FROM pos WHERE word = 'accelerator';

我得到NULL作为回复。

这是我的表结构

enter image description here

4 个答案:

答案 0 :(得分:2)

'加速器'不同于加速器\ r'。因此,您似乎已插入数据而不剥离它们。验证使用:

SELECT * FROM pos WHERE word = 'accelerator\r'

它应该返回行

答案 1 :(得分:0)

'accelerator\r' !== 'accelerator'

您可能正在考虑使用LIKE所以:

SELECT * FROM pos WHERE word LIKE '%accelerator%'; 

会为您返回正确的结果。

答案 2 :(得分:0)

'accelerator\r'中注意字符串末尾的\r

这应该有效:

SELECT * FROM pos WHERE word LIKE 'accelerator%'

答案 3 :(得分:0)

让我们来看看你的where条款:

WHERE word = 'accelerator' OR id = 3;

如果两个操作数中至少有一个为真,则为真。对于给定记录,条件为真,因此至少有一个操作数适用于它。让我们来看看你的其他where子句:

WHERE word = 'accelerator';

这个更严格,不会产生给定的记录。使用第二个where子句,您看到没有'accelerator'行作为word的值,但是,您使用第一个where子句找到了一条记录'acclerator\r'word,与'accelerator'不同,但id3,因此,根据您的第一个where条款,记录满足您的条件,因为OR的至少一个操作数是真的。