0

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

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

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

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

我们只得到一个结果,但正确的值为 5,你能帮我解决同样的问题吗?

4

3 回答 3

2

这两个查询彼此不同。第一个查找包含 MEM04912在列内的记录referredby,而第二个查找具有精确值的记录MEM04912

给定一组数据,

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

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

于 2013-08-17T15:50:10.997 回答
1
SELECT * FROM `tbl.members` WHERE `referredby` LIKE '%MEM04912%';

为您提供 MEM049121、AMEM04912 等结果。

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

只为您提供被引用者正好是 MEM04912 的结果,在 MEM04912 的前面或后面没有添加额外的字符或数字

于 2013-08-17T15:54:01.167 回答
0

如果您查询...

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

您将获得 columnreferredby包含 String 的所有结果MEM04912,例如SOMEMEM04912,MEM04912MORE等。如果您执行 ...

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

你只得到列,其中referredby完全等于MEM04912

于 2013-08-17T15:53:07.330 回答