我有一个ID列表,我编写了一个MYSQL查询来获取有关这些ID的信息。返回不存在的ID
我需要的是一种方法来确定哪些ID不再在数据库中从ID列表中删除它们。
有没有一个简单的解决方案来做到这一点,我现在无法想象?
我有一个ID列表,我编写了一个MYSQL查询来获取有关这些ID的信息。返回不存在的ID
我需要的是一种方法来确定哪些ID不再在数据库中从ID列表中删除它们。
有没有一个简单的解决方案来做到这一点,我现在无法想象?
该文章不知道你的表结构,从而使一上来把我的头顶部,但...
如果你有两个表,身份证件和信息,如:
ID (IDCOL int, DATEENTERED datetime)
INFO (INFOID int, ID_ID int, ID_NAME varchar(50))
然后,你可以查询
SELECT * FROM ID WHERE IDCOL NOT IN (SELECT ID_ID FROM INFO)
这应该返回ID中的所有条目那里是不是在INFO相应的条目。
之后,这是一个写适当的删除语句的情况。
整个事情可以在一个步骤中完成与
DELETE FROM ID WHERE IDCOL NOT IN (SELECT ID_ID FROM INFO)
但我一般喜欢做我删除定义的事务,你可以检查,以确保你没有搞砸了你提交之前对数据库的更改。
而我从上面的评论中看到,我的答案是基础的,因为它不是全部都在数据库中:) – Adrian 2012-08-15 23:46:19
创建一个附加(临时)表,使用ID列表填充它,然后执行查询以查找不存在的ID。例如 -
CREATE TEMPORARY TABLE temp(id INT);
INSERT INTO temp VALUES (1), (2), (8), (10);
-- View non existing ID:
SELECT t.id FROM temp t
LEFT JOIN your_table a
ON a.id = t.id
WHERE a.id IS NULL;
DROP TEMPORARY TABLE IF EXISTS temp;
然后在php应用程序中读取此数据集并更新ID列表。
返回数据库中的所有ID并将它们与ID数组进行比较。删除那些不匹配的文件 – 2012-08-15 23:16:09
这个ID列表在哪里?在另一张桌子?在一个PHP数组? ..? – 2012-08-15 23:23:17
该列表基本上是一个php数组,我需要将其与数据库中的表进行比较。 – user1601869 2012-08-15 23:31:12