Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Sql语句基本错误_Mysql_Sql - Fatal编程技术网

Mysql 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

仍然在处理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
);
我得到一个错误,我的表被指定了两次


上下文正在尝试使用每个项目的排序整数手动对项目进行排序。所以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