Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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
Php 禁用唯一sql行结果约束_Php_Mysql_Sql_Phpmyadmin - Fatal编程技术网

Php 禁用唯一sql行结果约束

Php 禁用唯一sql行结果约束,php,mysql,sql,phpmyadmin,Php,Mysql,Sql,Phpmyadmin,我在一个表中循环,任务,存储每个任务的NPC id,然后在表中循环,返回每个NPC id的所有NPC数据 红色框中的值应返回 表:任务 表:NPC 我正在遍历从任务表接收到的所有NPC_ID,并转储数组以确保它没有丢失任何数据。没有数据丢失 var_dump($allNPCIDs)//所有5个结果 然后转储查询以确保内爆字符串没有丢失任何数据。没有数据丢失 var_dump($qry)//查询显示所有5个结果 问题: 但是当我转储$row时,我丢失了重复的npd\u id: var

我在一个表中循环,任务,存储每个任务的NPC id,然后在表中循环,返回每个NPC id的所有NPC数据

红色框中的值应返回

表:任务

表:NPC

  • 我正在遍历从任务表接收到的所有NPC_ID,并转储数组以确保它没有丢失任何数据。没有数据丢失

    var_dump($allNPCIDs)//所有5个结果

  • 然后转储查询以确保内爆字符串没有丢失任何数据。没有数据丢失

    var_dump($qry)//查询显示所有5个结果

问题:

  • 但是当我转储
    $row
    时,我丢失了重复的npd\u id:

    var_dump($row)//缺少1行,重复的npc\u id

PHP:


如何关闭phpMyAdmin mySQL数据库中删除重复行数据的约束?

这不是一个可以关闭的约束。这是您正在执行的查询的结构。使用IN(1,2,3,4,1)与使用IN(1,2,3,4)相同。这只是筛选npcs表并决定是否选择特定行的条件。将id列出两次不会使该行在npcs表中存在两次。。。因此不能选择两次

你想要的东西不能用这个选择来完成

您可以使用工会:

(SELECT * FROM npcs WHERE npc_id=1) UNION
(SELECT * FROM npcs WHERE npc_id=2) UNION
(SELECT * FROM npcs WHERE npc_id=3) UNION
(SELECT * FROM npcs WHERE npc_id=4) UNION
(SELECT * FROM npcs WHERE npc_id=1)
或者首先在临时表中插入ID,然后选择如下:

SELECT N.* FROM npcs N JOIN temptable T on N.npc_id=T.npc_id
或者,您可以在客户端通过一个循环执行对每个ID的查询,并将数据放在一起


可能还有其他解决方案,但现在还没有想到。

这不是一个可以关闭的约束。这是您正在执行的查询的结构。使用IN(1,2,3,4,1)与使用IN(1,2,3,4)相同。这只是筛选npcs表并决定是否选择特定行的条件。将id列出两次不会使该行在npcs表中存在两次。。。因此不能选择两次

你想要的东西不能用这个选择来完成

您可以使用工会:

(SELECT * FROM npcs WHERE npc_id=1) UNION
(SELECT * FROM npcs WHERE npc_id=2) UNION
(SELECT * FROM npcs WHERE npc_id=3) UNION
(SELECT * FROM npcs WHERE npc_id=4) UNION
(SELECT * FROM npcs WHERE npc_id=1)
或者首先在临时表中插入ID,然后选择如下:

SELECT N.* FROM npcs N JOIN temptable T on N.npc_id=T.npc_id
或者,您可以在客户端通过一个循环执行对每个ID的查询,并将数据放在一起


可能还有其他解决方案,但现在还没有想到。

这不是一个可以关闭的约束。这是您正在执行的查询的结构。使用IN(1,2,3,4,1)与使用IN(1,2,3,4)相同。这只是筛选npcs表并决定是否选择特定行的条件。将id列出两次不会使该行在npcs表中存在两次。。。因此不能选择两次

你想要的东西不能用这个选择来完成

您可以使用工会:

(SELECT * FROM npcs WHERE npc_id=1) UNION
(SELECT * FROM npcs WHERE npc_id=2) UNION
(SELECT * FROM npcs WHERE npc_id=3) UNION
(SELECT * FROM npcs WHERE npc_id=4) UNION
(SELECT * FROM npcs WHERE npc_id=1)
或者首先在临时表中插入ID,然后选择如下:

SELECT N.* FROM npcs N JOIN temptable T on N.npc_id=T.npc_id
或者,您可以在客户端通过一个循环执行对每个ID的查询,并将数据放在一起


可能还有其他解决方案,但现在还没有想到。

这不是一个可以关闭的约束。这是您正在执行的查询的结构。使用IN(1,2,3,4,1)与使用IN(1,2,3,4)相同。这只是筛选npcs表并决定是否选择特定行的条件。将id列出两次不会使该行在npcs表中存在两次。。。因此不能选择两次

你想要的东西不能用这个选择来完成

您可以使用工会:

(SELECT * FROM npcs WHERE npc_id=1) UNION
(SELECT * FROM npcs WHERE npc_id=2) UNION
(SELECT * FROM npcs WHERE npc_id=3) UNION
(SELECT * FROM npcs WHERE npc_id=4) UNION
(SELECT * FROM npcs WHERE npc_id=1)
或者首先在临时表中插入ID,然后选择如下:

SELECT N.* FROM npcs N JOIN temptable T on N.npc_id=T.npc_id
或者,您可以在客户端通过一个循环执行对每个ID的查询,并将数据放在一起


可能还有其他解决方案,但现在还没有想到它们。

这在phpMyAdmin中没有限制,但SQL是如何工作的。
SELECT N.*FROM npcs N
将返回5行(npc_id 1到5)<代码>其中将此限制为与您的条件匹配的行。如果重复条件,则不会得到额外的行

您可以将表格任务中的列npc_id提取到具有列quest_id和npc_id的查找表格quests_to_npc中。这将为任务中的每个npc包含一行。 您的查询可能如下所示:
选择n*
从作为q的任务开始
在q.quest\u id=q2n.quest\u id上以q2n的形式将任务\u加入到\u NPC中

在q2n.npc_id=n.npc_id

这在phpMyAdmin中不是约束,而是SQL的工作方式。
SELECT N.*FROM npcs N
将返回5行(npc_id 1到5)<代码>其中将此限制为与您的条件匹配的行。如果重复条件,则不会得到额外的行

您可以将表格任务中的列npc_id提取到具有列quest_id和npc_id的查找表格quests_to_npc中。这将为任务中的每个npc包含一行。 您的查询可能如下所示:
选择n*
从作为q的任务开始
在q.quest\u id=q2n.quest\u id上以q2n的形式将任务\u加入到\u NPC中

在q2n.npc_id=n.npc_id

这在phpMyAdmin中不是约束,而是SQL的工作方式。
SELECT N.*FROM npcs N
将返回5行(npc_id 1到5)<代码>其中将此限制为与您的条件匹配的行。如果重复条件,则不会得到额外的行

您可以将表格任务中的列npc_id提取到具有列quest_id和npc_id的查找表格quests_to_npc中。这将为任务中的每个npc包含一行。 您的查询可能如下所示:
选择n*
从作为q的任务开始
在q.quest\u id=q2n.quest\u id上以q2n的形式将任务\u加入到\u NPC中

在q2n.npc_id=n.npc_id

这在phpMyAdmin中不是约束,而是SQL的工作方式。
SELECT N.*FROM npcs N
将返回5行(npc_id 1到5)<代码>其中对此进行了限制