Mysql Sql语句基本错误
仍然在处理sql,但这就像是一个非常基本的问题,我显然错过了一些重要的东西Mysql Sql语句基本错误,mysql,sql,Mysql,Sql,仍然在处理sql,但这就像是一个非常基本的问题,我显然错过了一些重要的东西 SELECT * FROM myTable WHERE arbitraryInt < (SELECT MAX(arbitraryInt)); 当我知道存在小于最大值的任意值时,没有返回任何行。虽然没有返回任何内容,但没有错误。提前谢谢 更新:这是代码的其余部分,仍然会在FROM关键字中出现错误 UPDATE myTable SET arbitraryInt = arbitraryInt + 1 WHERE pr
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
);
我得到一个错误,我的表被指定了两次
上下文正在尝试使用每个项目的排序整数手动对项目进行排序。所以MAX的原因是为了防止这个整数变得比需要的大。我肯定有更好的方法,但我还没见过。我要查找的结果是一个带有上下箭头的表,用于为在线商店重新排序列表项。子查询必须是一个完整的查询,能够独立运行。您的子查询
(SELECT MAX(arbitraryInt))
未完成,因为它未指定FROM子句。您的完整查询可能如下所示
SELECT *
FROM myTable
WHERE arbitraryInt < (SELECT MAX(arbitraryInt)
FROM myTable);
您缺少from子句,因此您可能打算:
SELECT *
FROM myTable
WHERE arbitraryInt < (SELECT MAX(arbitraryInt) FROM mytable);
这在以前的堆栈溢出中有一个特性。看看
谢谢,这修复了查询的这一部分。。在上下文中,我现在有了updatemytable集合arbitraryInt=arbitraryInt+1,其中primaryKey=0001和arbitraryInt<从myTable中选择MAXarbitraryInt;我得到一个错误myTable是指定的twiceIt对我来说似乎奇怪,你可以更新一个选定的光标。这可能是你的问题。通过这样的排序,你最终会增加一些arbitraryInt值,使其与MAXarbitraryInt匹配,最终它们都将等于MAX。我认为你应该允许整数值变大。一个整数将为您提供超过20亿个数字。
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