我想在Eloquent模型中搜索不区分大小写。
现在我用这个
Model::where($column, 'LIKE', '%' . $value . '%' );
但它是区分大小写的,我怎么才能解决这个问题呢?
我也发现这篇文章How can I search (case-insensitive) in a column using LIKE wildcard?,但我不能在雄辩模型中使用它
我想在Eloquent模型中搜索不区分大小写。
现在我用这个
Model::where($column, 'LIKE', '%' . $value . '%' );
但它是区分大小写的,我怎么才能解决这个问题呢?
我也发现这篇文章How can I search (case-insensitive) in a column using LIKE wildcard?,但我不能在雄辩模型中使用它
9条答案
按热度按时间oogrdqng1#
实际上,您不需要使用
UPPER
,只需使用ilike
作为比较器,它将执行大小写不敏感的比较。您 * 确实 * 需要
%
符号来表示您要搜索的子字符串。ars1skjm2#
在这种情况下我建议使用Upper函数
像这样
omhiaaxx3#
没有看到这个解决方案。所以我把它贴在这里。
6ju8rftf4#
这应该行得通。
更换
column
和$text
。jutyujz05#
laravel雄辩的搜索是大小写不敏感的,你不需要像,在您的查询上或下函数。
只需使用:
orWhere部分是在您有多个表字段要查询时使用的
nkkqxpd96#
你的表格是怎么排列的?
这是数据库中归类的特殊性,请尝试使用latin_general_ci或latin_gerneral_cs,它们不区分大小写。
但是,如果您尝试通过示例在utf8_bin中获取此排序规则,则它不会运行,因为此排序规则是敏感的。
所有示例都在MySql下运行。
23c0lvtd7#
您不必将关键字和DB值都转换为相同的大小写(UPPER或LOWER)。您只需指定“iLIKE”而不是“LIKE”。以下示例根据category_id返回模型数据列表,关键字与名字或姓氏是否匹配至关重要:
rn0zuynd8#
最佳选择是使用BINARY
zfciruhq9#
已回答,请使用
iLike
运算符,它不区分大小写,请参见Laravel Eloquent Ignore Casing
或者为了好玩这样做,不推荐。
没有测试它,但这就是获胜的想法。