Size: a a a

2020 July 02

VY

Vladyslav Yarema in Go-go!
Никита
Кто как делает сложные запросы к базе с кучей условий? Думал взять любой query builder для этого, но не понимаю, как хорошо это абстрагировать, и чтобы поля, которые фигурируют в запросе, не торчали своем SQL-виде типа CONCAT(first_name, ‘ ‘, last_name), а были скрыты
я бы взял что-то типа https://github.com/nleof/goyesql
источник

Н

Никита in Go-go!
@mr_tron
а как ты отличаешь пустую структуру от не пустой?
у пустой айдишник 0 будет
источник

AS

Alexander Shavelev in Go-go!
Никита
Этот вопрос должен решать драйвер
уверены что драйвер, а не вы+бд через плейсхолдеры?
источник

DP

Daniel Podolsky in Go-go!
Dmitry Goncharov
А если ты сам пишешь функции на sql то надо закрывать sql инъекции, в го это быстро реализовать?
если писать правильно - иньекций быть не может, на самом деле
источник

АП

Александр Попов... in Go-go!
давно уже не сталкивался с таким
источник

АП

Александр Попов... in Go-go!
лет 5 все юзают биндинги + prepare запросы
источник

АП

Александр Попов... in Go-go!
где мухи и котлеты отдельно, хоть заставляйся там скобками
источник

DP

Daniel Podolsky in Go-go!
не,я видел особо одаренных в том году
источник

AS

Alexander Shavelev in Go-go!
Александр Попов
лет 5 все юзают биндинги + prepare запросы
prepared stmt ради 1го запроса?
источник

АП

Александр Попов... in Go-go!
ех были времена когда надо было писать экспейп функции на php для экранирования... ммм...
источник

ВС

Владимир Столяров... in Go-go!
Александр Попов
ех были времена когда надо было писать экспейп функции на php для экранирования... ммм...
mysql_escape_string/mysql_real_escape_string 🙂
источник

DP

Daniel Podolsky in Go-go!
Alexander Shavelev
prepared stmt ради 1го запроса?
так это все равно будет сделано, современные базы иначе не умеют
источник

ВС

Владимир Столяров... in Go-go!
Alexander Shavelev
prepared stmt ради 1го запроса?
ну, да, если запрос делать через Query/Exec, внутри все равно сначала идет prepare
источник

@

@mr_tron in Go-go!
я сегодня видел особо одарёных фанатов "давайте писать запросы в базу данных вместо логики на стороне клиента"
источник

@

@mr_tron in Go-go!
 sql = """
       set textsize 2147483647
   
       ;with a as (
           select
               '{ "tzId": '+cast(tz_id as sysname)+
             ', "tzGeo": "'+replace(replace(tz_geo.STAsText(),'POLYGON ((', ''),'))', '')+
             '", "tzName": "'+tz_name+
             '", "tzgId": '+cast(tz.tzg_id as sysname)+
             ', "tzgName": "'+tzg_name+
             '", "tzgColor": '+cast(tzg_color as sysname)+
             ', "Priority": '+cast(priority as sysname)+' }' item,
           tz_geo.STArea() area
           from Delivery.TariffZone tz with (nolock)
               left join Delivery.TariffZoneGroup tzg with (nolock)
                   on tzg.tzg_id = tz.tzg_id
       )
       select '[ '+stuff (
           (
               select ', '+item
               from a
               order by area desc
               for xml path('')
           ),1,1,'')+' ]' data
 
   """

если
кто не понял,  оно делает json вида [{"tzId": бла-бла, "tzGeo": бла-бла, ...}, {"tzId": бла-бла, "tzGeo": бла-бла, ...}, ...] прям в базе данных
источник

AS

Alexander Shavelev in Go-go!
@onokonem @expxakep ого, что-то я проспал
источник

ВС

Владимир Столяров... in Go-go!
по-моему в go так изначально и было
источник

DP

Daniel Podolsky in Go-go!
всегда так было, да
источник

АП

Александр Попов... in Go-go!
@mr_tron
я сегодня видел особо одарёных фанатов "давайте писать запросы в базу данных вместо логики на стороне клиента"
есть же этот как его собака...
источник

АП

Александр Попов... in Go-go!
graphql!
источник