在mySql中当我使用id和姓氏搜索时,我看不到任何结果。以下
SELECT * FROM TableName
WHERE id = '-2105192515' AND last_name='JOHNSON'
0 Results ----- (id = mzb_indiv_id)
但是当只用Id搜索时,我得到一个记录匹配。以下是查询
SELECT * FROM TableName
WHERE id = '-2105192515'
1 Record match . --- (id = mzb_indiv_id)
使用last_name搜索时,我也看到了结果。但为什么上述两次搜索之间存在差异?
答案 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
代替?