Mysql 使用SQL中的SELECT COUNT查询进行限制
我想用另一个表的多行限制插入,如下所示:Mysql 使用SQL中的SELECT COUNT查询进行限制,mysql,sql,phpmyadmin,Mysql,Sql,Phpmyadmin,我想用另一个表的多行限制插入,如下所示: INSERT INTO pacte (alianca_en_pacte, tipus) SELECT id_alianca_en_pacte1 ,tipus_pacte1 FROM c_alianca LIMIT 0, SELECT COUNT(tipus_pacte1) FROM c_alianca WHERE tipus_pacte1 IS NOT NULL 以下查询: SELECT COUNT(tipus_pacte1) FROM c_alian
INSERT INTO pacte (alianca_en_pacte, tipus)
SELECT id_alianca_en_pacte1 ,tipus_pacte1
FROM c_alianca
LIMIT 0, SELECT COUNT(tipus_pacte1) FROM c_alianca WHERE tipus_pacte1 IS NOT NULL
以下查询:
SELECT COUNT(tipus_pacte1) FROM c_alianca WHERE tipus_pacte1 IS NOT NULL
返回一个4
运行脚本时,出现以下错误:
您的SQL语法有错误;检查手册
对应于您的MySQL服务器版本,以便使用正确的语法
在第4行的“从c_alianca选择*
这就是你想要的吗
INSERT INTO pacte (alianca_en_pacte, tipus)
SELECT id_alianca_en_pacte1, tipus_pacte1,
( SELECT COUNT(tipus_pacte1) FROM c_alianca WHERE tipus_pacte1 IS NOT NULL ) AS tipus
FROM c_alianca LIMIT 0
这就是你想要的吗
INSERT INTO pacte (alianca_en_pacte, tipus)
SELECT id_alianca_en_pacte1, tipus_pacte1,
( SELECT COUNT(tipus_pacte1) FROM c_alianca WHERE tipus_pacte1 IS NOT NULL ) AS tipus
FROM c_alianca LIMIT 0
MySQL目前不支持将子查询作为参数进行限制。您需要在两个查询中使用用户变量:
SET @limit = (
SELECT COUNT(tipus_pacte1) FROM c_alianca WHERE tipus_pacte1 IS NOT NULL
);
INSERT INTO pacte (alianca_en_pacte, tipus)
SELECT id_alianca_en_pacte1 ,tipus_pacte1
FROM c_alianca
LIMIT 0, @limit;
但是,在您的示例中,可以完全避免使用LIMIT:
INSERT INTO pacte (alianca_en_pacte, tipus)
SELECT id_alianca_en_pacte1 ,tipus_pacte1
FROM c_alianca
WHERE tipus_pacte1 IS NOT NULL;
MySQL目前不支持将子查询作为参数进行限制。您需要在两个查询中使用用户变量:
SET @limit = (
SELECT COUNT(tipus_pacte1) FROM c_alianca WHERE tipus_pacte1 IS NOT NULL
);
INSERT INTO pacte (alianca_en_pacte, tipus)
SELECT id_alianca_en_pacte1 ,tipus_pacte1
FROM c_alianca
LIMIT 0, @limit;
但是,在您的示例中,可以完全避免使用LIMIT:
INSERT INTO pacte (alianca_en_pacte, tipus)
SELECT id_alianca_en_pacte1 ,tipus_pacte1
FROM c_alianca
WHERE tipus_pacte1 IS NOT NULL;
为什么不直接查询您的条件并像这样插入这些条件呢
INSERT INTO pacte (alianca_en_pacte, tipus)
SELECT id_alianca_en_pacte1 ,tipus_pacte1
FROM c_alianca
WHERE tipus_pacte1 IS NOT NULL
为什么不直接查询您的条件并像这样插入这些条件呢
INSERT INTO pacte (alianca_en_pacte, tipus)
SELECT id_alianca_en_pacte1 ,tipus_pacte1
FROM c_alianca
WHERE tipus_pacte1 IS NOT NULL
您不能在limit上使用子查询,但也不需要它。对您的查询进行限制。检查我的答案。你不能使用子查询限制,但你也不需要它。对您的查询进行限制。检查我的答案。我想得太直率了+谢谢,它工作得很好!我想当事情这么简单的时候我是在绞尽脑汁。我想得太直率了+谢谢,它工作得很好!事情这么简单的时候,我想我是在绞尽脑汁。。