有人可以解释一下为什么这个不起作用吗?
我正在尝试使用一组整数完成一个简单的IN子句,但是每个建议的解决方案似乎都不是很惯用。 尝试了这样做,但问题似乎出现在字符串替换上。
inq := "6,7" //strings.Join(artIds, ",")
rows, err = db.Query("SELECT DISTINCT title FROM tags_for_articles LEFT JOIN tags ON tags.id = tags_for_articles.tag_id WHERE article_id IN (?)", inq)
并且这样做
rows, err = db.Query("SELECT DISTINCT title FROM tags_for_articles LEFT JOIN tags ON tags.id = tags_for_articles.tag_id WHERE article_id IN (6,7)", inq)
我正在尝试使用一组整数完成一个简单的IN子句,但是每个建议的解决方案似乎都不是很惯用。 尝试了这样做,但问题似乎出现在字符串替换上。
inq := strings.Join(artIds, ",")
我有点惊讶,Go语言似乎没有优雅的方式处理这个查询。
inq
是一个字符串,所以如果你将其参数化,最终会得到IN ('6,7')
这样的结果,虽然它是有效的,但却是完全不同的东西。一般来说,IN
是无法被参数化的。你看过这个吗:https://dev59.com/qmIj5IYBdhLWcg3wb0nX - Alex K.