合并键到同一表格

我如何将当前 perm 和我添加的新 perm 合并到一起,看起来像这样 {"key=69","key=360"} 而不仅仅是 69,然后当添加新 id 时替换当前。

tempkey = {}
    exports['ghmattimysql']:execute('SELECT * FROM user_properties WHERE house = @house AND number = @number', {['@house'] = house, ['@number'] = number}, function(rows)
        for k,v in pairs(rows) do
            if tonumber(v.perm) ~= nil then
                if tonumber(v.perm) < 0 then
                    tempkey[#tempkey+1] = {v.perm.. " " ..id}
                else
                    tempkey[#tempkey+1] = {id}
                end
            end
        end
        exports['ghmattimysql']:execute('UPDATE user_properties SET perm = @perm WHERE house = @house AND number = @number', {
            ['@house'] = house,
            ['@number'] = number,
            ['@perm'] = tempkey
        })
    end)
点赞
用户3498218
用户3498218

这段代码没有提供足够的上下文,很难确认你正在尝试做什么。你能提供更多信息吗?例如,你从哪里获取 idtempkey 应该是什么样子的?

你还使用了一个表格作为 MySQL 查询的参数,我认为这不正确。我猜测这个查询只会返回一个结果?

如果我猜测正确的话,perm 应该是一个数字字符串(例如 "69 360")。如果是这样的话,你应该将它们连接成一个字符串,如下所示:

tempkey = ""
exports['ghmattimysql']:execute('SELECT * FROM user_properties WHERE house = @house AND number = @number', {['@house'] = house, ['@number'] = number}, function(rows)
    for k,v in pairs(rows) do
        if tonumber(v.perm) ~= nil then
            if tonumber(v.perm) < 0 then
                tempkey = v.perm .. " " .. id
            else
                tempkey = id
            end
        end
    end
    exports['ghmattimysql']:execute('UPDATE user_properties SET perm = @perm WHERE house = @house AND number = @number', {
        ['@house'] = house,
        ['@number'] = number,
        ['@perm'] = tempkey
    })
end)

另外,如果这个查询只是用来返回一个结果的话,你可以像这样做,以避免不必要地迭代 rows 表:

tempkey = ""
exports['ghmattimysql']:execute('SELECT * FROM user_properties WHERE house = @house AND number = @number', {['@house'] = house, ['@number'] = number}, function(rows)
    local data = rows[1]
    if tonumber(data.perm) ~= nil then
        if tonumber(data.perm) < 0 then
            tempkey = data.perm .. " " .. id
        else
            tempkey = id
        end
    end

    exports['ghmattimysql']:execute('UPDATE user_properties SET perm = @perm WHERE house = @house AND number = @number', {
        ['@house'] = house,
        ['@number'] = number,
        ['@perm'] = tempkey
    })
end)

这里用一个空格字符来存储它,但你也可以用逗号或其他任何东西。使用 JSON 可能有点过于复杂了。

2020-06-09 13:59:08