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%”的单词(百分比符号表示任意数量的字符)。