完全可以像这样执行 SELECT 语句:
SELECT *
FROM orders
WHERE order_id in (10000, 10001, 10003, 10005);
但是,是否可以创建一个变量来存储该“数组”(10000,...),以便在多个语句中重复使用?
SELECT *
FROM orders
WHERE order_id in @IDarray;
如果这是一个非常简单的问题,我们深表歉意——我们都得问他们一次!
编辑:嗯,也许我应该澄清一下。在我的确切情况下,我有大量的 ID(让我们以上面的数组为例),它们是硬编码的,但可能会改变。
这些应该可重用于多个 INSERT 语句,以便我们可以将内容插入到每个 ID 的多个表中。两个这样的最终结果可能是:
INSERT INTO table1 VALUES (10000, 1, 2, 3);
INSERT INTO table1 VALUES (10001, 1, 2, 3);
INSERT INTO table1 VALUES (10003, 1, 2, 3);
INSERT INTO table1 VALUES (10005, 1, 2, 3);
INSERT INTO table2 VALUES (10000, a, b, c);
INSERT INTO table2 VALUES (10001, a, b, c);
INSERT INTO table2 VALUES (10003, a, b, c);
INSERT INTO table2 VALUES (10005, a, b, c);
显然,这里能够指定数组节省了空间,并且还允许在一个位置更改它,而不必修改 INSERT。