使用laravel elequent在MySQL中搜索波斯字符串

时间:2019-01-12 09:08:30

标签: php laravel

在laravel中,为了搜索产品标题列,我使用以下代码:

$products->where('title', 'like', '%' . $request->title . '%');

title列是一个字符串列,存储在其中的数据使用波斯语。另外,数据库排序规则是UTF8_general_ci。但是,当我搜索某些内容时,找到了一些标题,而没有找到。我需要结果来查找在标题栏中包含$request->title的每种产品。

你能帮我吗?

1 个答案:

答案 0 :(得分:1)

将排序规则UTF8_general_ci更改为latin1_swedish_ci

  

归类具有以下一般特征:

     

两个不同的字符集不能具有相同的排序规则。

     

每个字符集都有一个排序规则,这是默认排序规则。例如,latin1的默认排序规则为latin1_swedish_ci。 SHOW CHARACTER SET的输出指示每个显示的字符集的默认排序规则。

     

整理规则名称有一个约定:它们以与之关联的字符集的名称开头,通常包含语言名称,并且以_ci(不区分大小写),_ cs(区分大小写)或_bin(二进制)。

     

在一个字符集具有多个排序规则的情况下,可能不清楚哪种排序规则最适合给定的应用程序。为避免选择错误的排序规则,对代表性数据值进行一些比较以确保给定排序规则按照您期望的方式对值进行排序可能会有所帮助。

参考here