Ich kann kein gutes Beispiel für die richtige Art finden, den String-Teil einer Textanfrage mit den Werten zu verbinden. Zum Beispiel:Richtiger Weg zum Schreiben einer Text-SQL-Abfrage in Go
query := `SELECT column_name FROM table_name
WHERE column1_name = %d AND column2_name = %d` % (val1, val2)
rows, res, err := db.Query(query)
Dies funktioniert nicht. Der Compiler gibt syntax error: unexpected comma, expecting)
wahrscheinlich zurück, weil ich versuche, ein Python-Tupel zu verwenden.
Wenn ich umschreiben es als
query := `SELECT column_name FROM table_name
WHERE column1_name = %d AND column2_name = %d` % val1
ich (mismatched types string and int)
bekommen, die mir sagt, dass das Tupel Eines der Probleme war.
Wenn ich meinen ersten Parameter als Strings werfen, ich (operator % not defined on string)
In Python, Sie so etwas wie
query = """SELECT column_name FROM table_name
WHERE column1_name = %d
AND column2_name = %d""" % (val1, val2)
ODER
query = """SELECT column_name FROM table_name
WHERE column1_name = %s
AND column2_name = %s""" % (val1_string, val2_string)
tun würde, ich weiß, ich konnte nur werfen die Werte als Zeichenfolgen und concat mit "STRING" + var + "STRING"
, aber das scheint wirklich chaotisch im Vergleich zu der Python-Version. Was ist das Pendant zu diesem Python-Code in Go? Insbesondere das Einschließen des Tupelabschnitts und das Verketten einer Zeichenfolge und einer Ganzzahl.
Sie 'Sprintf' suchen? –
gibt es ein tolles Video, dass ich auch gerne auf Sie verweisen würde, es ist wie-in-Datenbank in Golang: https://www.youtube.com/watch?v=m879N2rzn2g – Roylee