Ответ 1
Использование PDO и предположение MySQL
$stmt = $db->prepare('SELECT * FROM table WHERE LOWER(`field`) = ?');
$stmt->execute(array(strtolower($var)));
В базе данных у меня есть это поле: " TeST", и я не знаю, где находится блокировка колпачков, и я просто хочу strtolower его и сделать что-то вроде этого
SELECT * FROM table WHERE strtolower(field) = strtolower($var)
Как я могу это сделать?
Использование PDO и предположение MySQL
$stmt = $db->prepare('SELECT * FROM table WHERE LOWER(`field`) = ?');
$stmt->execute(array(strtolower($var)));
В MySQL функция называется LOWER
. Затем вы можете просто использовать учетную запись, не учитывающую регистр, в поле или в поле запрос, и он будет соответствовать независимо от случая, который кажется лучшим вариантом.
Просто используйте:
"SELECT * FROM `table_name` WHERE LOWER(`field_name`)='".strtolower($_var)."'";
Или используйте
"SELECT * FROM `table_name` WHERE LCASE(`field_name`)='".strtolower($_var)."'";
Обе функции работают одинаково
LOWER
Функция в mysql может использоваться для преобразования значения поля в нижний регистр.
например:
"select * from table_name where LOWER(email) = ?";
$motors = Motor::with([
'category',
'company',
'images' => function ($q) {
$q->select('motor_id', DB::raw('url as image'));
}
])->orderBy(function ($query) use($Sort_by_column) {
$query->orderBy($Sort_by_column, $Sort_by);
})->paginate(env('PER_PAGE'))->get();
Он дает ошибку функции strtolower при использовании orderby.