使用id和last_name查询mysql会产生0个结果

时间:2018-02-02 16:18:21

标签: mysql sql

在mySql中当我使用id和姓氏搜索时,我看不到任何结果。以下

SELECT * FROM TableName
WHERE id = '-2105192515' AND last_name='JOHNSON' 
0 Results ----- (id = mzb_indiv_id)

enter image description here

但是当只用Id搜索时,我得到一个记录匹配。以下是查询

SELECT * FROM TableName
WHERE id = '-2105192515' 
1 Record match .  --- (id = mzb_indiv_id)

enter image description here

使用last_name搜索时,我也看到了结果。但为什么上述两次搜索之间存在差异?

3 个答案:

答案 0 :(得分:1)

第一个查询只返回一行,如果id 也有last_name,则在同一行。

意味着:具有此ID的行以及具有该姓氏的行。)

我猜你的第二个查询的结果没有last_name JOHNSON?

也许你想要一个OR而不是AND?

<强> 修改

您的示例数据包含' JOHNSON'而非'JOHNSON'(开头有额外空格)

尝试last_name LIKE '%JOHNSON%'TRIM(last_name) = 'JOHNSON'

答案 1 :(得分:1)

从你的问题,第一件事我找到了

SELECT * FROM TableName
    WHERE id = '-2105192515'
    AND   last_name='JOHNSON'

此列名称为&#39; last_name &#39;但在下面的信息中,您写了专栏名称&#39; last_Name &#39;。

检查您的列名称,因为缺少的列会在执行时出错,因此极不可能。

第二件事:你是拼写&#39; JOHNSON &#39;与存储在数据库中的方式相同?没有空格?。

请在结果集中发布两个查询,以获得正确且更有效的答案。

答案 2 :(得分:0)

id-2105192515的行的last_name列值等于JOHNSON

SELECT * FROM TableName
WHERE id = '-2105192515' AND last_name='JOHNSON'

此查询表示 - 返回id = '-2105192515' AND last_name='JOHNSON'

的所有行

您可能想要使用OR代替?