MySQL从包含传入数组中指定的BIGINT的表中获取行

vngu2lb8  于 5个月前  发布在  Mysql
关注(0)|答案(1)|浏览(63)

我最近遇到了一个问题,mysql在TypeScript中使用serverless-mysql,可能我的查询不正确?我使用以下方法创建查询:

export default async function ExcuteQuery(query: any, values: any) {    
    try {        
        const results = await db.query(query, values);
        await db.end();        
        return results;
    } catch (error: any) {
        throw new Error(error.message + error.stack)
    }
  }

let ids: BigInt[] = [222222222222222222222, 3333333333333333333333, 444444444444444444444]
ExcuteQuery("SELECT * FROM servers WHERE id IN (?)", [ids.join()])

字符串
它返回一个空数组,其中没有行数据。
然而,当我尝试在phpmyadmin中使用查询时,如下所示:

"SELECT * FROM servers WHERE id IN (222222222222222222222, 3333333333333333333333, 444444444444444444444)"


它返回了我想要的行,没有麻烦。这是否意味着我在传递到该查询中的参数数据上做错了什么?这是类型转换问题吗?如果不清楚,我很乐意详细说明,请随意评论!
我很感激我提前得到的任何回复,谢谢!
我尝试使用以下方法更改参数数据:

[ids.join(', ')]
[`(${ids.join()})`]


然而,这些似乎都没有工作。

ht4b089n

ht4b089n1#

SELECT servers.* 
FROM servers
JOIN JSON_TABLE(CONCAT('[', ?, ']'), 
                '$[*]' COLUMNS (id BIGINT PATH '$')) criteria USING (id)

字符串

相关问题