我有50,000个用户记录,其中包含一个以逗号分隔的列表booklist
的字段bookIDs
。 我有一个book
表,bookID
作为主键,有大约100,000条记录。PHP/MySql:通过与列表比较找到缺失的记录
我想遍历所有用户及其booklist
,以确定book
表中是否存在匹配的bookID
。如果它不在book
表中,我需要将bookID
插入到book
表中。
这可以用SQL来完成吗?
如果我使用PHP,我会好起来的bookID
所有列表组合成一个长字符串或数组,然后遍历所有bookID
在book
表中查找缺少的?
这是一次性的脚本,所以越简单越好;-)
尽管改变的时间已经太晚了,但您已经找到了错误的问题。您应该有3个表格:'用户','书籍'和'书目列表',书签在书籍和用户之间具有多对多的关系。 – 2012-02-01 20:08:06
[“如何搜索逗号分隔值”](http://stackoverflow.com/q/3852443/),[“如何将逗号分隔的列表与值匹配?”](http: //“Select select statement using IN operator”](http://stackoverflow.com/q/834074/)。另请参见[“在数据库列中存储逗号分隔列表真的很糟糕吗?”](http://stackoverflow.com/q/3653462/) – outis 2012-02-01 21:10:28