SET SESSION block_encryption_mode = 'aes-256-ecb';
SELECT filed
FROM schema.table
WHERE encrypted_field in (
SELECT HEX(AES_ENCRYPT('123', 'secret'))
);
只知道一步一步地执行, 但是遇上这样的, 就不知道怎么办了.
SET SESSION block_encryption_mode = 'aes-256-ecb';
SELECT filed
FROM schema.table
WHERE encrypted_field in (
SELECT HEX(AES_ENCRYPT('123', 'secret'))
);
只知道一步一步地执行, 但是遇上这样的, 就不知道怎么办了.
|
pluvetApr 22, 2022
1
Golang 不支持 SQL 语法
|
|
codefeverApr 22, 2022
2
在用 Golang 进行开发的时候,如果需要在和数据库交互,则可以使用 database/sql 包。这是一个对关系型数据库的通用抽象,它提供了标准的、轻量的、面向行的接口。
|
|
morty0Apr 22, 2022
3
Prepare 应该就可以吧
|
|
PeterYang1996Apr 22, 2022
4
为什么一定要用 sql 实现呢
|
|
seakingiiApr 22, 2022
5
复杂的 SQL 可以做成存储过程供 GO 调用.
|
|
MoYi123Apr 22, 2022
6
放事务里,分 2 句跑.
|
|
freemoonApr 22, 2022
7
db.InTransaction( your_logic() )
|
|
8
注意注释地方:
```golang package main import ( "database/sql" "log" _ "github.com/go-sql-driver/mysql" ) func main() { // 默认不支持 multi statements ,要设置 multiStatements=true ,否则无法在一个 Exec/Query 里执行多条语句 db, err := sql.Open("mysql", "root:123qwe@tcp(127.0.0.1:3306)/?charset=utf8mb4&multiStatements=true") if err != nil { log.Fatal(err) } result, err := db.Query(` SET SESSION block_encryption_mode = 'aes-256-ecb'; SELECT filed FROM schema.table WHERE encrypted_field in ( SELECT HEX(AES_ENCRYPT('123', 'secret')) ); `) if err != nil { log.Fatal(err) } defer result.Close() for result.Next() { var filed string err = result.Scan(&filed) if err != nil { log.Fatal(err) } log.Println("filed:", filed) } } ``` |
|
9
太感谢了!
|