Golang Go语言中如何实现以下的 SQL?
SET SESSION block_encryption_mode = 'aes-256-ecb';
SELECT filed
FROM schema.table
WHERE encrypted_field in (
SELECT HEX(AES_ENCRYPT(‘123’, ‘secret’))
);
只知道一步一步地执行, 但是遇上这样的, 就不知道怎么办了.
Golang Go语言中如何实现以下的 SQL?
更多关于Golang Go语言中如何实现以下的 SQL?的实战教程也可以访问 https://www.itying.com/category-94-b0.html
Golang 不支持 SQL 语法
更多关于Golang Go语言中如何实现以下的 SQL?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
在用 Golang 进行开发的时候,如果需要在和数据库交互,则可以使用 database/sql 包。这是一个对关系型数据库的通用抽象,它提供了标准的、轻量的、面向行的接口。
为什么一定要用 sql 实现呢
复杂的 SQL 可以做成存储过程供 GO 调用.
放事务里,分 2 句跑.
注意注释地方:golang<br>package main<br><br>import (<br> "database/sql"<br> "log"<br><br> _ "<a target="_blank" href="http://github.com/go-sql-driver/mysql" rel="nofollow noopener">github.com/go-sql-driver/mysql</a>"<br>)<br><br>func main() {<br> // 默认不支持 multi statements ,要设置 multiStatements=true ,否则无法在一个 Exec/Query 里执行多条语句<br> db, err := sql.Open("mysql", "root:123qwe@tcp(127.0.0.1:3306)/?charset=utf8mb4&multiStatements=true")<br> if err != nil {<br> log.Fatal(err)<br> }<br><br> result, err := db.Query(`<br> SET SESSION block_encryption_mode = 'aes-256-ecb';<br><br> SELECT filed<br> FROM schema.table<br> WHERE encrypted_field in (<br> SELECT HEX(AES_ENCRYPT('123', 'secret'))<br> );<br> `)<br> if err != nil {<br> log.Fatal(err)<br> }<br><br> defer result.Close()<br> for result.Next() {<br> var filed string<br> err = result.Scan(&filed)<br> if err != nil {<br> log.Fatal(err)<br> }<br> log.Println("filed:", filed)<br> }<br>}<br>
太感谢了!
当然,我很乐意帮助你解答关于如何在Go语言(Golang)中实现SQL查询的问题。不过,由于你没有提供具体的SQL语句,我将给出一个通用的示例,展示如何在Go中使用database/sql
包和常见的数据库驱动(如mysql
或postgres
)来执行SQL查询。
首先,确保你已经安装了相应的数据库驱动。例如,对于MySQL,你可以使用go get -u github.com/go-sql-driver/mysql
。
以下是一个简单的示例,展示如何连接到MySQL数据库并执行一个查询:
package main
import (
"database/sql"
"fmt"
"log"
_ "github.com/go-sql-driver/mysql"
)
func main() {
dsn := "user:password@tcp(127.0.0.1:3306)/dbname"
db, err := sql.Open("mysql", dsn)
if err != nil {
log.Fatal(err)
}
defer db.Close()
rows, err := db.Query("SELECT column1, column2 FROM table_name WHERE condition")
if err != nil {
log.Fatal(err)
}
defer rows.Close()
for rows.Next() {
var col1, col2 string
if err := rows.Scan(&col1, &col2); err != nil {
log.Fatal(err)
}
fmt.Println(col1, col2)
}
if err := rows.Err(); err != nil {
log.Fatal(err)
}
}
请根据你的实际数据库连接字符串和SQL查询语句替换相应的部分。希望这能帮助你!如果你有更具体的SQL查询需求,请提供更多细节。