我似乎在将数组传递给查询并使用IN
条件时遇到问题,当我将每个搜索词手动添加到查询中时,我都能成功获取结果
async function getFixtures() {
let response;
try {
response = await pool.query("SELECT * FROM fixtures WHERE league_name IN ('Chinese Super League', 'Iran Pro League', 'English Premier League')");
} catch (e) {
console.error('Error Occurred', e);
}
return response.rows;
}
当我尝试传递数组但没有返回结果时
async function getFixtures(leaguesArray) {
let response;
try {
response = await pool.query("SELECT * FROM fixtures WHERE league_name IN ($1)", [leaguesArray]);
} catch (e) {
console.error('Error Occurred', e);
}
return response.rows;
}
当我注销leaguesArray
时,它将返回
['Chinese Super League', 'Iran Pro League', 'English Premier League']
所以当它传递给查询时,我认为它是
[['Chinese Super League', 'Iran Pro League', 'English Premier League']]
我需要将该初始数组转换为字符串吗?
我显然在这里错过了一些东西,但是不确定什么
谢谢
答案 0 :(得分:0)
正如docs所述。我相信您使用两种方法
方法1
request.onloadend = () => {
if (request.status == 401) {
this.goBack();
}
}
方法2
<div class="button">
<a onclick="window.open('http://example.com/2nd_page#2nd_id');" href="http://example.com/1st_page#1st_id">Read more</a>
</div>
答案 1 :(得分:0)
我遇到了同样的问题,我用包 pg-format 解决了它。
对于 WHERE IN
,您可以这样使用它:
import format from 'pg-format';
response = await pool.query(format("SELECT * FROM fixtures WHERE league_name IN (%L)", leaguesArray));
注意:现在,pool.query
只接受一个参数,format
接受模板 + 变量以生成有效的 SQL 请求。