CREATE TABLE t1 (s1 INT, s2 CHAR(5) NOT NULL);
INSERT INTO t1 VALUES(100, 'abcde');
SELECT (SELECT s2 FROM t1);
当我在MySql DB中执行时,它给出语法错误,如1065 select语句没有执行, 这是根据MySql调用标量子查询 点击链接了解更多信息 http://dev.mysql.com/doc/refman/5.1/en/scalar-subqueries.html
答案 0 :(得分:4)
要返回标量值,子查询必须返回一行和一个字段。因此,您应该使用WHERE或使用MySQL LIMIT语句限制子查询中的行。例如:
SELECT (select s2 FROM t1 limit 1);
答案 1 :(得分:2)
您的select语句中没有FROM
子句:
SELECT (SELECT s2 FROM t1)
FROM ...?
请注意,只有t1
中有一行时才能使用此功能。否则,您需要一些方法从t1
获取所需的一行:
SELECT (SELECT s2 FROM t1 WHERE ...)
FROM ...
此类查询的有效示例如下:
SELECT (SELECT s2 FROM t1 WHERE s1 = 100), t2.id, t2.name
FROM t2;