我们从 MySQL 得到了意想不到的结果,我们正在使用以下查询......
SELECT * FROM `tbl.members` WHERE `referredby` LIKE '%MEM04912%';
它返回正确的结果(5),但是当我们尝试完全匹配时...
SELECT * FROM `tbl.members` WHERE `referredby` = 'MEM04912';
我们只得到一个结果,但正确的值为 5,你能帮我解决同样的问题吗?
我们从 MySQL 得到了意想不到的结果,我们正在使用以下查询......
SELECT * FROM `tbl.members` WHERE `referredby` LIKE '%MEM04912%';
它返回正确的结果(5),但是当我们尝试完全匹配时...
SELECT * FROM `tbl.members` WHERE `referredby` = 'MEM04912';
我们只得到一个结果,但正确的值为 5,你能帮我解决同样的问题吗?
这两个查询彼此不同。第一个查找包含 MEM04912
在列内的记录referredby
,而第二个查找具有精确值的记录MEM04912
。
给定一组数据,
referredby
==============
AMEM04912
MEM04912
MEM049123
XMEM04912X
当您执行第一个查询时,它将返回所有记录,因为它们都包含您搜索的字符串的一部分,而您的第二个查询将只返回第二条记录,因为它是唯一与您的搜索字符串完全匹配的记录。
SELECT * FROM `tbl.members` WHERE `referredby` LIKE '%MEM04912%';
为您提供 MEM049121、AMEM04912 等结果。
SELECT * FROM `tbl.members` WHERE `referredby` = 'MEM04912';
只为您提供被引用者正好是 MEM04912 的结果,在 MEM04912 的前面或后面没有添加额外的字符或数字
如果您查询...
SELECT * FROM `tbl.members` WHERE `referredby` LIKE '%MEM04912%';
您将获得 columnreferredby
包含 String 的所有结果MEM04912
,例如SOMEMEM04912
,MEM04912MORE
等。如果您执行 ...
SELECT * FROM `tbl.members` WHERE `referredby` = 'MEM04912';
你只得到列,其中referredby
完全等于MEM04912
。