uni-app 禁止使用数据库内包含的字段名作为别名

uni-app 禁止使用数据库内包含的字段名作为别名

15 回复

我今天也遇到了这个问题,我的是这样解决的: 1、加上外键:“foreignKey”: “opendb-nation-china._id” 2、enum中的"field"的值"_id as value, name as text",要value在前text在后,调换过来就不行
“nation_china”: {
“bsonType”: “string”,
“title”: “民族”,
“order”: 2,
“enum”: {
“collection”: “opendb-nation-china”,
“field”: “_id as value, name as text”
},
“foreignKey”: “opendb-nation-china._id”
},


谢谢 成功解决问题

谢谢 成功解决问题

解决,list中collection设置问题

页面中数据库联表查询这样就没事了

怎么解决?

看最新皮鞥轮

也遇到了这个问题,最新版本 3.5.3 怎么解决的呢

看最新皮鞥轮

这样处理: “nation”: { “bsonType”: “string”, “title”: “民族”, “description”: “民族”, “order”: 4, “foreignKey”: “opendb-nation-china.name”, “enum”: { “collection”: “opendb-nation-china”, “orderby”: “first_letter asc”, “field”: “name as value, name as text” }, “componentForEdit”: { “name”: “uni-data-picker” } },

还是不行,按这样修改后,list页面显示 “未找到主表与附表之间的关联关系……”

答案: detail.vue 里面field: unicloud-db ref=“udb” v-slot:default="{data, loading, error, options}" :options=“options” :collection=“collectionList” field=“username,gender,mobile,email,comment,nation_china{name as text}” :where=“queryWhere” :getone=“true” :manual=“true”

重新生成就可以看到具体的代码了 。

uni-app 中,如果你使用数据库查询时,需要避免使用数据库内包含的字段名作为别名,这通常是为了防止字段名冲突或混淆。以下是一些常见的做法和建议:

1. 使用明确的别名

在 SQL 查询中,为字段指定一个明确的别名,避免与数据库中的字段名相同。例如:

SELECT username AS user_name, email AS user_email FROM users;

在这个例子中,usernameemail 是数据库中的字段名,而 user_nameuser_email 是别名,避免了与数据库字段名冲突。

2. 使用表名前缀

如果查询涉及多个表,可以使用表名前缀来避免字段名冲突。例如:

SELECT u.username AS u_username, p.post_title AS p_title 
FROM users u 
JOIN posts p ON u.id = p.user_id;

在这个例子中,u_usernamep_title 是别名,避免了与不同表中的字段名冲突。

3. 避免使用保留字

确保别名不是数据库的保留字或关键字。例如,避免使用 SELECT, FROM, WHERE 等作为别名。

4. 在代码中处理

如果你在代码中处理查询结果,确保在代码中使用的变量名与数据库字段名不同。例如:

const result = await db.query('SELECT username AS user_name FROM users');
console.log(result[0].user_name); // 使用别名 user_name 而不是 username
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!