完全匹配的问题返回错误的结果

时间:2013-08-17 15:46:43

标签: mysql

我们从MySQL获得了意想不到的结果,我们正在使用以下查询......

SELECT * FROM `tbl.members` WHERE `referredby` LIKE '%MEM04912%';

并返回正确的结果(5),但是当我们尝试完全匹配时......

SELECT * FROM `tbl.members` WHERE `referredby` = 'MEM04912';

我们只得到一个结果,但正确的值是5,你可以帮我解决这个问题。

3 个答案:

答案 0 :(得分:2)

这两个查询彼此不同。第一个在MEM04912列中查找包含 referredby的记录,而第二个查找<{>完全值 MEM04912的记录1}}。

鉴于数据集,

referredby
==============
AMEM04912
MEM04912
MEM049123
XMEM04912X

执行第一个查询时,它将返回所有记录,因为它们都包含搜索字符串的一部分,而第二个查询只返回第二个记录,因为它是唯一与搜索到的字符串完全匹配的记录

答案 1 :(得分:1)

SELECT * FROM `tbl.members` WHERE `referredby` LIKE '%MEM04912%';

为您提供MEM049121,AMEM04912等结果。

SELECT * FROM `tbl.members` WHERE `referredby` = 'MEM04912';

仅给出您所推荐的MEM04912的结果,MEM04912前面或后面没有添加额外的字符或数字

答案 2 :(得分:0)

如果您查询......

SELECT * FROM `tbl.members` WHERE `referredby` LIKE '%MEM04912%';

您将获得列referredby包含字符串MEM04912的所有结果,例如SOMEMEM04912MEM04912MORE等。如果您执行...

SELECT * FROM `tbl.members` WHERE `referredby` = 'MEM04912';

您只获得了列,其中referredby完全等于MEM04912