Мы часто хотим, чтобы искать текст, независимо от количества пробелов, пробелов и букв.
Просто обрезайте нижний регистр и замените все мультиплеерные символы без слова на одно место.
SELECT regexp_replace(trim(lower('Here is a long text , with many white spaces AND different character sensitive')),'\W+',' ','g') t
возвращение: здесь длинный текст с большим количеством белых пространств и разного характера чувствительных
Вот использование для поиска. Только порядок слов важен, больше ничего. И это красиво.
select * from (
SELECT regexp_replace(trim(lower('Here is a long text , with many white spaces AND different character sensitive')),'\W+',' ','g') t
) as o
where t= regexp_replace(trim(lower('Here is a LonG TEXT , with mANY white ^ spaces AND different character sensiTive')),'\W+',' ','g')
возвращение: здесь длинный текст с большим количеством белых пространств и разного характера чувствительных
мусора в данных и бросовых в запросе, но он по-прежнему считает его правильным.
PostgreSQL или MySQL? Лучшее решение может быть различным в каждом случае. Попытка написать что-то, что работает в обоих, обычно является рецептом медленного запроса. –