рдРрд╢реЗ рд╣реА:
рдЪрдпрди рдХрд░реЗрдВ * рдХрд┐рд╕ рдЬрдЧрд╣ рд╕реЗ (?)
рдЬрдм рдореИрдВ рдХреНрд╡реЗрд░реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ db.Query (sSql, vArgs ...) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдЗрдирдкреБрдЯ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ?
рдЗрд╕ рддрд░рд╣ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ: "рдП, рдмреА, рд╕реА"?
рдпрд╛ рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ: [рдП, рдмреА, рд╕реА]?
рдпрд╛ рдЗрд╕ рддрд░рд╣ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдХреЗ рд░реВрдк рдореЗрдВ: ["рдП", "рдмреА", "рд╕реА"]?
рдХрд┐ `рд╕рдм рд╡рд┐рдлрд▓, рд░реЛрдирд╛ ...
рдпрд╣ # 107 рдХрд╛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣реИред
рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рдПрдХ ?
рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдмрдпрд╛рди рдХреА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЬрдирд╛ рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рдХреБрдЫ рднреА рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЕрдкреВрд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ):
рдЖрдкрдХреЛ рдЕрдкрдиреА рдХреНрд╡реЗрд░реА рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреА рд╣реЛрдЧреАред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣рдореЗрд╢рд╛ 3 рддрд░реНрдХ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдмрдирд╛рдПрдВ
SELECT * FROM TABLE WHERE A IN (?, ?, ?)
ред
рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЖрдкрдХреЛ рд╕реНрд▓рд╛рдЗрд╕ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреНрд╡реЗрд░реА рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреА рд╣реЛрдЧреАред
рд╣рд╛рдп Arnehormann рдЖрдкрдХреЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЕрдЧрд░ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ "рд╕реЗ рдЪрдпрди рдХрд░реЗрдВ * рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ (?;?)?", рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рддрдиреЗ рдкреИрд░рд╛ рд╣реИ? рд▓реЗрдХрд┐рди рдЖрдорддреМрд░ рдкрд░ рдореИрдВ рдбреЙрди `t рдкрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рддрдиреЗ рдкреИрд░рд╛ рд╡рд╣рд╛рдБ рд╣реИ? рдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЗрдирдкреБрдЯ рдкреИрд░рд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ
рдЬреА рд╢реБрдХреНрд░рд┐рдпрд╛
рдпреВ рдХреЗ рд▓рд┐рдП рдмреНрд░ред
@ рдЬрд╝реЛрд╣реЛрдИ-рдХреЗрд╡рд┐рди, рдЬрдм рддрдХ рдореИрдВ рдХреБрдЫ рдпрд╛рдж рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдЖрдк рдХрд┐рддрдиреЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╡рд╣рд╛рдБ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдпрд╛ рддреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрд░реНрдЧ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдкрддрд╛ _always_ Query()
рдпрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ s...
рддреЛ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдЬреНрдЮрд╛рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХреА рд╕рд╣реА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдХреНрд╡реЗрд░реА рдмрдирд╛ http : //play.golang.org/p/mA2KwolV-n
рдЗрд╕реЗ рдкрдврд╝рдиреЗ рд╕реЗ, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЕрдм рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдЖрдк ?
рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдХреБрдЫ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ
if len(inValues) > 0 {
query = "SELECT * FROM " + table + " WHERE " + column +
" IN (?" + strings.Repeat(",?", len(inValues)-1)) + ")"
....
}
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рдзрдиреНрдпрд╡рд╛рдж @DisposaBoy, рдХрд┐ рд▓рдЧрддрд╛ рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рдкрд░рд┐рдЪрд┐рдд: +1:
рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░рд╛ рджрд┐рдорд╛рдЧ рдирд╣реАрдВ рд╣реИ :) рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред
2013-11-22 19:06:15 рдкрд░, "рдЕрд░реНрдиреЗ рд╣реЙрд░рдореИрди" рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:
рдЗрд╕реЗ рдкрдврд╝рдиреЗ рд╕реЗ, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЕрдм рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдХреБрдЫ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ
iflen (inValues)> 0 {query = "Select * FROM" + table + "WHERE" + рдХреЙрд▓рдо + "IN (?" + str ..Repeat ("?"; len (inValues) -1)) "") ..? ..}
-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдпрд╣ # 107 рдХрд╛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣реИред
рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рдПрдХ
?
рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдмрдпрд╛рди рдХреА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЬрдирд╛ рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рдХреБрдЫ рднреА рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛ рд╕рдХрддрд╛ рд╣реИредрдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЕрдкреВрд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ):
рдЖрдкрдХреЛ рдЕрдкрдиреА рдХреНрд╡реЗрд░реА рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреА рд╣реЛрдЧреАред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣рдореЗрд╢рд╛ 3 рддрд░реНрдХ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдмрдирд╛рдПрдВ
SELECT * FROM TABLE WHERE A IN (?, ?, ?)
редрдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЖрдкрдХреЛ рд╕реНрд▓рд╛рдЗрд╕ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреНрд╡реЗрд░реА рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреА рд╣реЛрдЧреАред