【问题标题】:Search string from database containing certain characters laravel 5从包含某些字符的数据库中搜索字符串 laravel 5
【发布时间】:2018-06-05 03:39:33
【问题描述】:

我的表格中有名称列,其中包含公司名称列表。

问题是有些企业名称包含 - , ' 字符。

我正在使用此查询来搜索名称

$names = Brand::where(name, 'LIKE', '%' . $request->search . '%')->get();

示例:来自数据库 daddy's barber shop 的名称 如果我使用这个词 daddys barber shop 搜索这个没有 ' 字符,它什么也不返回。 如何忽略数据库中的 ' 字符,使其匹配 daddy's barber shop ? 如何实现这个搜索?

【问题讨论】:

  • 看起来你想改为进行正则表达式搜索

标签: mysql laravel laravel-5 eloquent


【解决方案1】:

您可以使用 whereRaw 而不是 where 来选择 @Rohit shah 答案,但这是繁重的处理,尤其是当您的表中有很多原始数据时,因此每次处理替换字符时。

如果我遇到这种情况,我会做的是在表格“name_alt”中创建另一列,我在其中存储没有不需要的字符的名称,并在该列上进行搜索

【讨论】:

    【解决方案2】:
    SELECT
        Column_name
    FROM
        Table_name
    WHERE
        REPLACE(REPLACE(REPLACE(name, '-',''), ',', ''), ''', '') LIKE '%search_string%'
    

    这种类型的查询可能符合您的目的。

    希望这对您有所帮助。如有任何疑问,请告诉我。

    【讨论】:

      猜你喜欢
      • 2020-05-01
      • 2021-06-30
      • 2011-05-25
      • 2021-06-12
      • 2010-10-13
      • 2017-08-08
      • 1970-01-01
      • 2023-01-10
      • 1970-01-01
      相关资源
      最近更新 更多