从包含某些字符laravel 5的数据库中搜索字符串

时间:2018-06-05 03:39:33

标签: mysql laravel laravel-5 eloquent

我的表格中有名称列,其中包含商家名称列表。

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

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

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

示例:数据库daddy's barber shop中的名称 如果我使用这个术语daddys barber shop而不使用'字符进行搜索,则不返回任何内容。 如何忽略数据库中的'字符,使其与daddy's barber shop匹配? 如何实现这种搜索?

2 个答案:

答案 0 :(得分:0)

SELECT
    Column_name
FROM
    Table_name
WHERE
    REPLACE(REPLACE(REPLACE(name, '-',''), ',', ''), ''', '') LIKE '%search_string%'

此类查询可能符合您的目的。

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

答案 1 :(得分:0)

你可以使用whereRaw而不是在哪里使用@Rohit shah回答,但这是繁重的处理,特别是当你的表中有很多原始数据时,所以每次处理替换字符时。

如果我遇到这种情况,我会怎么做,就是在tabale" name_alt"中创建另一列。我存储没有不需要的字符的名称,在该列上进行搜索