4

我是 MySQL 新手,但在 Intranet 开发中使用 Access 多年。最近开始使用 MySQL 数据库并将我的头发拉出来。LIKE 命令对确实存在的记录给出不稳定的结果或没有结果。

一个名为“Clients”的表,其中包含一个名为“BusinessName”的列。一个记录是例如“FRED SMITH CONSTRUCTIONS”。

Select * from Clients where BusinessName LIKE '%FRED%' -- returns true.
Select * from Clients where BusinessName LIKE '%FRED SMITH%' -- returns false!
Select * from Clients where BusinessName LIKE '%FRED%SMITH%' -- returns false!
Select * from Clients where BusinessName LIKE '%FRED%S%' -- returns true.
Select * from Clients where BusinessName LIKE '%FRED%SM%' -- returns false!
Select * from Clients where BusinessName LIKE '%FRED%S%C%' -- returns true.

它非常不稳定,对我来说毫无意义。任何超过 1 个单词,它似乎会让人感到困惑。就像 % 通配符在单词之间不起作用,或者如果第二个单词中有多个字符。

为了让我摆脱麻烦,我分别搜索每个单词,但这显示了太多结果。例如

Select * from Clients where BusinessName LIKE '%FRED%' or BusinessName LIKE '%SMITH%' 

返回真。

有什么建议么?列类型为文本。尝试RLIKE了类似的结果。

4

1 回答 1

0

您的列字符集可能不是您所期望的。MySQL 安装通常默认为 ISO8859-1 以外的其他内容。

于 2013-09-11T08:46:33.550 回答