我的表格中有名称列,其中包含商家名称列表。
问题是有一些商业名称包含 - ,'字符。
我正在使用此查询来搜索名称
$names = Brand::where(name, 'LIKE', '%' . $request->search . '%')->get();
示例:数据库daddy's barber shop
中的名称
如果我使用这个术语daddys barber shop
而不使用'
字符进行搜索,则不返回任何内容。
如何忽略数据库中的'
字符,使其与daddy's barber shop
匹配?
如何实现这种搜索?
答案 0 :(得分:0)
SELECT
Column_name
FROM
Table_name
WHERE
REPLACE(REPLACE(REPLACE(name, '-',''), ',', ''), ''', '') LIKE '%search_string%'
此类查询可能符合您的目的。
希望这会对你有所帮助。如果有任何疑问,请告诉我。
答案 1 :(得分:0)
你可以使用whereRaw而不是在哪里使用@Rohit shah回答,但这是繁重的处理,特别是当你的表中有很多原始数据时,所以每次处理替换字符时。
如果我遇到这种情况,我会怎么做,就是在tabale" name_alt"中创建另一列。我存储没有不需要的字符的名称,在该列上进行搜索