データベースからタイトルを取得しようとしています。しかし、それは機能しません:
$select->where->like('LOWER(title)','%'.$search_by.'%');
LOWER がなくても問題なく動作します。
$select->where->like('title','%'.$search_by.'%');
しかし、小文字が必要です。
データベースからタイトルを取得しようとしています。しかし、それは機能しません:
$select->where->like('LOWER(title)','%'.$search_by.'%');
LOWER がなくても問題なく動作します。
$select->where->like('title','%'.$search_by.'%');
しかし、小文字が必要です。
以下を検索した人のための解決策を (ZF3 で) 見つけました。
use Zend\Db\Sql\Expression;
$upperExpr = new Expression('LOWER(?)', [title], [Expression::TYPE_IDENTIFIER]);
$select->where->like($upperExpr, "%" . mb_strtolower($search_by, 'UTF-8') . "%");
または、「äÄöÖüÜ」がない場合はstrtolower()のみ;)
これにより、適切な SQL ステートメントが作成されます。