go 如何把数据库查出来的每一条记录都拼接完整路径
时间: 2023-03-25 09:02:25 浏览: 54
可以使用 filepath 包中的 Join 函数将路径拼接起来,示例代码如下:
```
import (
"path/filepath"
"database/sql"
)
func getFilePath(db *sql.DB, id int) (string, error) {
var path string
err := db.QueryRow("SELECT path FROM files WHERE id = ?", id).Scan(&path)
if err != nil {
return "", err
}
return filepath.Join("/var/files", path), nil
}
```
其中,"/var/files" 是文件存储的根目录,path 是数据库中存储的相对路径。使用 Join 函数可以将它们拼接成完整的文件路径。
相关问题
mysql里如何将查询得到的一条结果,拼接上不同值最终拆分为多行记录
可以使用 UNION ALL 进行拆分。假设查询得到一条记录为:
```
SELECT name, age, gender FROM users WHERE id = 1;
```
现在想将这条记录分别拼接上不同的城市,拆分为多行记录,可以这样写:
```
SELECT name, age, gender, 'Beijing' AS city FROM users WHERE id = 1
UNION ALL
SELECT name, age, gender, 'Shanghai' AS city FROM users WHERE id = 1
UNION ALL
SELECT name, age, gender, 'Guangzhou' AS city FROM users WHERE id = 1;
```
这样就会得到三条记录,分别表示该用户在北京、上海和广州的信息。在每个 UNION ALL 子句中,都要加上一个额外的列来表示不同的城市,可以使用字符串常量或者子查询等方式。
mysql 数据库查询字段拼接
在MySQL数据库中,可以使用连接操作符(CONCAT)来拼接字段。根据你提供的引用内容,你可以使用以下SQL语句来实现你的需求:
```sql
SELECT GROUP_CONCAT(A.uid SEPARATOR '、') AS uids
FROM 表A A
JOIN 表B B ON A.deviceid = B.uid
WHERE B.uid = 2290614309
```
这个SQL语句将根据表B的uid找到对应的表A中deviceid为3的uid值,并将这些uid值拼接成一个字段uids,使用逗号分隔。最后的结果将是【2290614309、2290614311】。