mysql - 对 SQL SELECT 语句中的数字感到困惑

标签 mysql sql select

我在阅读 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/

相关文章:

PHP - 代理脚本

mysql - SQL 数据库中数据修订控制的最佳实践

sql - 根据条件计数计算唯一行

sql - 为数据表中的每一行选择 COUNT(foreign ID)

mysql - 如何使此查询 : one field update anyway, 另一个字段仅在某些情况下更新?

mysql - 限价/订单动态字段的慢速 SQL 查询(从 X 点开始的坐标)

Java和SQL查询: slowness

sql - 将两个 sql select 查询(在 postgres 中)与 LIMIT 语句结合起来

php - 如何选择同一行中的多个字段? (MySQL)

mysql - 如何将每条记录或行按降序存储到rails数据库中?