我正在尝试学习如何将database/sql
软件包与go-sql-driver一起使用。我编写了以下简单程序,它可以工作,但是我无法弄清楚如何打印多个字段。
该数据库wiki1
具有三个字段id
,title
和body
。我查询“ title1”,这是值之一,但我想打印“ title”和“
body”的值。我该怎么办?
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
db, err := sql.Open("mysql", "root:Password1@/wiki1")
if err != nil {
fmt.Println(err)
return
}
defer db.Close()
st, err := db.Prepare("SELECT title FROM page WHERE title=?")
if err != nil {
fmt.Println(err)
}
rows, err := st.Query("title1")
if err != nil {
fmt.Println(err)
}
for rows.Next() {
var title, body string
if err := rows.Scan(&title); err != nil {
fmt.Println(err)
}
fmt.Printf("%s\n", title)
}
if err := rows.Err(); err != nil {
fmt.Println(err)
}
}
要读取body
和title
而不是title
,请首先更改该语句。
更改
st, err := db.Prepare("SELECT title FROM page WHERE title=?")
至
st, err := db.Prepare("SELECT body, title FROM page WHERE title=?")
然后更改读数。更改
var title, body string
if err := rows.Scan(&title); err != nil {
fmt.Println(err)
}
至
var title, body string
if err := rows.Scan(&body, &title); err != nil {
fmt.Println(err)
}
这将读取两个列。
要打印字段,您可以执行
fmt.Printf("title: %s\nbody: %s\n", title, body)
问题内容: 如何多次重复一个字符串?我知道我可以使用for循环,但是我想在每一行中重复一行字符串时间。 例如,如果用户输入,则输出将是: 其中等于2,等于4。 问题答案: 要么
问题内容: 是否可以在Magento中显示所有查询字符串?我真的很想看看执行了哪些查询。 谢谢 问题答案: 我不是100%确定这将捕获 每个 查询,但是大多数运行 在 考虑到这一点,您可以临时添加一些调试语句(为了安全起见,请向您制作的副本中添加) 如果您需要全部捕获它们,最好在MySQL级别进行(这并非总是可能的,具体取决于您的主机/ IT情况)
我现在的代码: 我希望它打印两个数组的交集,而不需要再次打印相同的数字。 E、 g:code>[1,2,2,1]和的交点应该只打印一次,而不是像我现在的代码那样。
我在谷歌周围看了一段时间,但没有工作。有谁能帮我解决这个问题吗?
问题内容: 我在Jenkins(v2.7.1)中完成了Pipeline作业,在此我想打印多行字符串参数()的每个元素,每行3个字符串: Foo , Bar , Baz 作为输入。 因此,我尝试了以下语法(使用和): 但是它失败了: :尚不支持在经过CPS转换的闭包上调用public static java.lang.Object org.codehaus.groovy.runtime.Defaul
问题内容: 我想打印一个特定的Python字典键: 现在我可以检查是否可以,但是我想做的是打印密钥的名称。当然可以使用,但是我不想列出 所有 键,而只列出一个特定的键。例如,我期望这样的事情(用伪代码): 有什么方法可以打印键名? 编辑: 好的,非常感谢你们的反应!:)我意识到我的问题没有很好地表述和琐碎。我只是感到困惑,因为我意识到key_name是两个不同的东西,我认为从字典上下文中打印出来是