仍在掌握sql,但这种接缝就像一个非常基本的问题,我显然缺少一些大的东西
SELECT * FROM myTable WHERE arbitraryInt < (SELECT MAX(arbitraryInt));
当我知道有任意值小于最大值的事实时,我没有返回任何行。虽然没有任何回复,但没有错误。提前致谢
更新:这是使用FROM关键字
仍然出错的其余代码UPDATE myTable SET arbitraryInt = arbitraryInt + 1
WHERE primaryKey = 0001 AND arbitraryInt < (
SELECT MAX(arbitraryInt) FROM myTable
);
我得到错误myTable被强化了两次
上下文是我试图使用每个项目的排序整数来手动排序项目。所以MAX的原因是要保持整数不要超过必要的大小。我确定这是一个更好的方式,但我还没有看到它。我要查找的结果是一个带有向上和向下箭头的表格,用于重新排序在线商店的列表项目。
答案 0 :(得分:0)
子查询必须是完整的查询,能够独立运行。你的子查询
(SELECT MAX(arbitraryInt))
未完成,因为它未指定 FROM
子句。您的完整查询应该类似于
SELECT *
FROM myTable
WHERE arbitraryInt < (SELECT MAX(arbitraryInt)
FROM myTable);
答案 1 :(得分:0)
你错过了from
条款,所以大概是你打算:
SELECT *
FROM myTable
WHERE arbitraryInt < (SELECT MAX(arbitraryInt) FROM mytable);
答案 2 :(得分:0)
之前有堆栈溢出功能。看看MYSQL update with WHERE SELECT subquery error
The following code seems to be something like what you are asking for
/*
CREATE TABLE MYTABLE (PRIMARYKEY INT, ARBITRARYID INT, AB1 INt)
*/
truncate table MYTABLE;
INSERT INTO MYTABLE
VALUES (1,1,NULL),(1,2,NULL),(1,3,NULL);
update MYTABLE
set ARBITRARYID = ARBITRARYID + 1
where PRIMARYKEY = 1 and
ARBITRARYID <= (
SELECT MAXABID FROM
(
select max(ARBITRARYID) MAXABID FROM MYTABLE
) S
)
;
select * from MYTABLE