2016-07-28 15 views
0

私はLaravel Projectで働いていますが、問題が発生しました。私のデータベース(MySQL)のフィールドに大文字で格納されています。私が以下のように検索すると、問題があります。例FINDIKについてMysql Search "I"大文字と小文字を区別しない

$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.'%'); 
}); 

トルコ語です。ユーザー検索としてfındıkが見つかりませんでした。

私はunicode_general_ciをMySQLテーブルに使用しています。私の頭のコードは以下の通りです。

<!doctype html> 
<html lang="tr"> 
<head> 
    <meta charset="UTF-8"> 

どうすればよいですか? MySQLのLOWERメソッドを提供する人もいます。しかし、より良い方法が存在することを願っています。

+0

にいくつかの人々を使用してみてください? (: - :) –

+0

まあ、いつもUPPERを使うことができます:-) – antorqs

+0

あなたは 'FINDIK'で結果を得ていますか?私が知っている限り、mysqlはデフォルトで大文字と小文字を区別しません。 –

答えて

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.'%'); 
}); 

提供していますか、SQL申し出iLikeの

+0

SQLSTATE [42000]:構文エラーまたはアクセス違反:1064 SQL構文にエラーがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックして、正しい構文がilikeの近くで使用できるようにしてください。または 'stock_code' ilike?または 'barcode' ilike? ( ''在庫量 '> 0)と(' '商品のilike%fındık% 'または' stock_code' ilike%fındık%)の行から1行目(SQL:select count(*または「バーコード」ilike%fındık%または 'hs_code' ilike%fındık%)) –

+0

それは動作していません。 –

+0

' ILIKE'はMySQLでは動作せず、PostgreSQLのみが動作します。https://www.postgresql.org/docs/8.3/static /functions-matching.html –

関連する問題