我在阅读 SQL“cookbook”类型引用时,遇到了一个我以前从未遇到过的语句:
INSERT INTO table (col1, col2)
SELECT t.col1, 8
FROM table AS t
WHERE t.col2 = 5
UNION ALL
SELECT 8, 8
现在让我感到困惑的是紧跟在 SELECT 语句之后的数字(在本例中为 8)。在我有限的 SQL 经验中,我只遇到过后跟列名的 SELECT 查询。有人可以帮我理解这是做什么的吗?谢谢!
最佳答案
SELECT 8, 8
确实如其所言;它返回一个结果集,其中包含 2 个未命名的列,每个列都包含 8
- 如果您自己运行该语句,您将完全看到这一点。
您可以像选择列、函数结果等一样自由选择文字值和表达式;
SELECT 'cake', 123 + 456
UNION ALL
将第一个表选择中的(非重复)行与第二个选择的结果合并,因此您插入一个额外的 (8,8)
行到表中。
关于mysql - 对 SQL SELECT 语句中的数字感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7499802/