like запрос c с исключенным дефисом

135
24 сентября 2018, 13:00

Всем привет! А можно ли в laravel5.5/eloquent/mysql составить “like” запрос так чтобы введя текст “A66” / “-A66” в поиске находились бы строки “A-66” и “A66” ? То есть символ дефиса как бы исключался и из условия и из текста?

И если да то как?

Спасибо !

Answer 1

Паттерн наверно можно подобрать и покрасивее, но смысл не в нем.
Используем в запросе вместо like - regexp

$regexp = preg_replace('(-|\s)', '', ' A-6 6');
$regexp = preg_replace('/([a-zA-Z0-9])/', "-?\${1}", $regexp);
$models = Model::where('column', 'REGEXP', $regexp);
READ ALSO
Node.js mysql обратиться к столбцу

Node.js mysql обратиться к столбцу

Результат выводит как нужно:

168
Почему выборка в MySQL быстрее чем в MongoDB

Почему выборка в MySQL быстрее чем в MongoDB

Подумываем о том, чтобы перенести логи с MySQL на MongoDBВ сообществе говорят что для таких задач монго неплохо подходит - быстрая скорость записи...

203
Проверка пиксель в пиксель на мобильном приложении

Проверка пиксель в пиксель на мобильном приложении

Если нужно например проверит верстку пиксель в пиксель в браузере то это легкоДля браузеров есть программы для наложения ПДФ на верстку

157
Какая сетка у макета?

Какая сетка у макета?

Макет есть только в зеплинеНа стандартную сетку бутстрапа в 12 колонок не подходит

148