c# - 如何使用 IN() 搜索存在?
问题描述
我正在使用 Npgsql 连接到 Postgres 数据库,我想运行这样的查询:
SELECT column IN('foo', 'bar') FROM table;
检查列是否在列表中。
我现在有这个 C# 代码:
var list = new string[] { "foo", "bar" };
var cmd = new NpgsqlCommand("SELECT column IN(:list) FROM table", myConnection);
cmd.Parameters.AddWithValue("list", list);
但这不起作用,因为 Npgsql 生成一个ARRAY
from list
,它应该是别的东西,......但是什么?
解决方案
我使用ANY
运算符修复了它,因为它需要一个数组:
var list = new string[] { "foo", "bar" };
var cmd = new NpgsqlCommand("SELECT column = ANY(:list) FROM table", myConnection);
cmd.Parameters.AddWithValue("list", list);
推荐阅读
- javascript - “TypeError:events.map 不是函数”我在创建新事件时遇到此错误
- c# - NDepend 查找没有文档的私有方法
- docker - GitHub 操作和 Docker-compose
- neo4j - 删除节点之间不必要的关系?
- python - `numpy.empty()` 和 `numpy.random.rand()` 相同或不同
- python - 如果它很忙,请更改端口 80
- javascript - 如何从 json 创建 csv 文件
- wordpress - 创建/修改 Wordpress 入站 POST 请求并转发到外部端点
- mongodb - 用于生产的独立 MongoDB 安装
- arrays - 声明为指针的数组存储在哪里?