gpt4 book ai didi

javascript - MySQL 根据另一个表中的 ids 数组从一个表中选择值

转载 作者:行者123 更新时间:2023-11-29 20:32:39 26 4
gpt4 key购买 nike

我发现许多 PHP 示例使用 mapimplode 来构造字符串...我正在使用 Node 和 Javascript,我认为这可能是问题所在。我有一个 id 数组,我像这样保存它:

[1, 2, 3, 4].join();

它正在被存储,我正在尝试运行查询:

SELECT sr.id, sr.name, sr.city FROM table1 AS sr 
JOIN table2 AS st WHERE sr.city = st.city AND sr.id IN (st.ids);

所以两个表都有一个列 city,table2 有多条记录,table1 只有一条。表 2 中“ids”列的类型为 TEXT。问题是它只返回 id 为 1 的行。如果我这样做:

SELECT sr.id, sr.name, sr.city FROM table1 AS sr 
JOIN table2 AS st WHERE sr.city = st.city AND sr.id IN (1,2);

我将得到第 1 行和第 2 行。是什么导致了问题?我尝试了 [1, 2, 3, 4].join(', '); 但这没有帮助。有什么建议吗?

最佳答案

我正在使用 MySQL v5.7,因此我可以访问 JSON 函数...我应该首先使用它。按照我想要的方式工作的解决方案是:

SELECT sr.id, sr.name, sr.city FROM table1 AS sr 
JOIN table2 AS st WHERE sr.city = st.city AND
JSON_SEARCH(st.ids, 'one', sr.id) IS NOT NULL;

喜欢新的 JSON 支持功能……尽管它有一些警告。例如,数组中的 ids 必须是字符串,id 不能是 int 的。 JSON_SEARCH 不断返回 NULL 作为 id 的路径,直到我将它们转换为字符串。反复试验...

关于javascript - MySQL 根据另一个表中的 ids 数组从一个表中选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38961181/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com