【问题标题】:searching for Persian string in MySQL using laravel elequent使用 laravel eloquent 在 MySQL 中搜索波斯语字符串
【发布时间】:2019-01-12 09:08:30
【问题描述】:

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

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

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

你能帮帮我吗?

【问题讨论】:

  • Collation UTF8_general_ci 更改为latin1_swedish_ci
  • 这是个好主意。
  • @RameshS:好主意..!

标签: php laravel


【解决方案1】:

将排序规则 UTF8_general_ci 更改为 latin1_swedish_ci

排序规则具有以下一般特征:

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

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

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

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

参考here

【讨论】:

  • 我这样做了,现在一切都在??????。也许没有办法回去了。不幸的是我没有备份
  • @HadiAghandeh:我认为这是解决这个问题的好方法..!
猜你喜欢
  • 2020-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-12
  • 1970-01-01
  • 2019-08-13
  • 2015-06-19
相关资源
最近更新 更多