их надо хранить отдельно в виде набора разных стейтментов сессии с бд, только тогда оно будет работать эффективно (планироваться и парситься один раз, а потом вызываться как функция)
Это про сырой sql насколько я понимаю? У меня сколько раз я его не использовал возникали проблемы например такого толка - нужно отсортировать данные по нескольким колонкам, причём колонки задаёт пользователь. Ну и там начинается всякая беготня с интерполяцией строки и sql инъекциями. Это как-то решается человеческими методами?
там же есть из коробки обработка юзер инпута, чтото вроде .query("SELECT $1 FROM Users", ["name, address"])
тут просто фишка в том чтобы научиться мыслить как субд, и давать ей то, что она любит. Она ответит взаимностью. Если у тебя колонок слишком много, скорее всего имена колонок являются данными, что противоречит нормальной форме, и нужна декомпозиция
ну так пишешь запрос весь, расставляешь переменные, передаешь массив с инпутом, он массив санитизирует и расставляет как надо. или я не понял тебя совсем.
ну так пишешь запрос весь, расставляешь переменные, передаешь массив с инпутом, он массив санитизирует и расставляет как надо. или я не понял тебя совсем.
он имеет в виду чтобы передавать как параметр поле по которому order by или join
Давай реалистичный пример разберём - пусть есть таблица тачек и параметры - объём двигателя, цвет, цена. Пользователь передаёт массив Filter[] где фильтр это key-value где key это название поля а value это значение поля. Как этот кейс на сыром sql решить?
Давай реалистичный пример разберём - пусть есть таблица тачек и параметры - объём двигателя, цвет, цена. Пользователь передаёт массив Filter[] где фильтр это key-value где key это название поля а value это значение поля. Как этот кейс на сыром sql решить?
очень просто, в нормальной форме у тебя должна быть таблица(цы) свойств тачки, а не отдельный столбец на каждое свойство