Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL在搜索列时不返回结果_Mysql - Fatal编程技术网

MySQL在搜索列时不返回结果

MySQL在搜索列时不返回结果,mysql,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作为响应 这是我的桌子结构 您可能会考虑使用类似的,因此: SELECT * FROM

以下是我正在使用的命令:

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
作为响应

这是我的桌子结构

您可能会考虑使用类似的
,因此:

SELECT * FROM pos WHERE word LIKE '%accelerator%'; 
将为您返回正确的结果

您可能会考虑使用类似的
,因此:

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

将为您返回正确的结果

“加速器”与“加速器\r”不同。因此,您似乎插入了数据,而没有剥离它们。要验证使用,请执行以下操作:

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

它应该返回行

'accelerator'不同于'accelerator\r'。因此,您似乎插入了数据,而没有剥离它们。要验证使用,请执行以下操作:

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

它应该返回
'accelerator\r'
中的行,注意字符串末尾的
\r

这应该起作用:

SELECT * FROM pos WHERE word LIKE 'accelerator%'

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

这应该起作用:

SELECT * FROM pos WHERE word LIKE 'accelerator%'

让我们看看您的
where
子句:

WHERE word = 'accelerator' OR id = 3;
如果两个操作数中至少有一个为真,则为真。给定记录的条件为true,因此至少有一个操作数为true。让我们看一下你的其他WHERE子句:

WHERE word = 'accelerator';

这一个更严格,不产生给定的记录。使用第二个
where
子句,您会看到没有行将
'accelerator'
作为
word
的值,但是,您发现了使用第一个
where
子句的记录,该子句将
'accllerator\r'
作为其
word
,这与
'accelerator'
不同,但是它的
id
3
,因此,根据您的第一个
where
子句,记录满足您的条件,因为
的至少一个操作数为true。

让我们看看您的
where
子句:

WHERE word = 'accelerator' OR id = 3;
如果两个操作数中至少有一个为真,则为真。给定记录的条件为true,因此至少有一个操作数为true。让我们看一下你的其他WHERE子句:

WHERE word = 'accelerator';

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

?在
word='accelerator'
中没有行,可能您希望
从位置选择*trim(两个'\r'单词)='accelerator'?按设计工作,不是吗<代码>'accelerator\r'
不同于
'accelerator'
它返回
NULL
,因为找不到行。搜索
'accelerator'
,但列值为
'accelerator\r'
(请注意
\r
)。如果要按字符串的一部分进行搜索,请使用像“%accelerator%”这样的
单词
(百分比符号表示任意数量的字符)。那么?在
word='accelerator'
中没有行,可能您希望
从位置选择*trim(两个'\r'单词)='accelerator'?按设计工作,不是吗<代码>'accelerator\r'
不同于
'accelerator'
它返回
NULL
,因为找不到行。搜索
'accelerator'
,但列值为
'accelerator\r'
(请注意
\r
)。如果要按字符串的一部分进行搜索,请使用类似“%accelerator%”的
单词
(百分比符号表示任意数量的字符)。