我们从MySQL获得了意想不到的结果,我们正在使用以下查询......
SELECT * FROM `tbl.members` WHERE `referredby` LIKE '%MEM04912%';
并返回正确的结果(5),但是当我们尝试完全匹配时......
SELECT * FROM `tbl.members` WHERE `referredby` = 'MEM04912';
我们只得到一个结果,但正确的值是5,你可以帮我解决这个问题。
答案 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
的所有结果,例如SOMEMEM04912
,MEM04912MORE
等。如果您执行...
SELECT * FROM `tbl.members` WHERE `referredby` = 'MEM04912';
您只获得了列,其中referredby
完全等于MEM04912
。