我正在为一个Laravel项目工作,我发现了一个问题。在我的数据库(MySQL)字段中存储为大写。当我在下面搜索时,我遇到了问题。
$query->where(function ($query) use ($q) {
$query->orWhere('product', 'LIKE', '%'.$q.'%');
$query->orWhere('stock_code', 'LIKE', '%'.$q.'%');
$query->orWhere('barcode', 'LIKE', '%'.$q.'%');
$query->orWhere('hs_code', 'LIKE', '%'.$q.'%');
});
例如 FINDIK 是土耳其语单词。当用户搜索fındık时未找到任何结果。
我正在使用unicode_general_ci
来表示MySQL表。我的头码如下。
<!doctype html>
<html lang="tr">
<head>
<meta charset="UTF-8">
我该怎么办?有些人提供了MySQL LOWER
方法。但我希望有更好的方法。
答案 0 :(得分:0)
$query->where(function ($query) use ($q) {
$query->orWhere('product', 'ilike', '%'.$q.'%');
$query->orWhere('stock_code', 'ilike', '%'.$q.'%');
$query->orWhere('barcode', 'ilike', '%'.$q.'%');
$query->orWhere('hs_code', 'ilike', '%'.$q.'%');
});
请尝试使用ilike