我是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%'
返回true。
有什么建议吗?列类型为Text。尝试RLIKE
得到了类似的结果。
答案 0 :(得分:0)
您的列字符集可能与您的预期不符。 MySQL安装经常默认为ISO8859-1以外的其他内容。