这是我的密码:
mysql.query("INSERT INTO CategorieItems (productid, title, image, rating, price, reviews, nodes)
VALUES ?
ON DUPLICATE KEY UPDATE
title=VALUES(title), image=VALUES(image), rating=VALUES(rating), price=VALUES(price), reviews=VALUES(reviews), nodes = CONCAT(IFNULL(nodes, ''), CONCAT(' - ', nodes))",
[itemArray]);
我正在抓取一个网站,它在我的mysql数据库中保存所有信息,现在我的查询代码检查productid是否已经在我的数据库中,如果它已经存在,它更新所有字段覆盖当前数据,除了nodes字段,因为我添加了concat函数,所以每次查询项目时它都会添加新的节点。我的问题是,如果在我的数据库中的同一个节点中两次提取项目,我会发现类似“node1-node2-node2-node3”的内容。所以在这个例子中node2出现了两次,是否可以检查node2是否已经存在,如果存在就不要再写它。
1条答案
按热度按时间idfiyjo81#
如果你能规范化你的设计就更好了。除此之外,您只能在列中搜索匹配项:
这不是很健壮,因为如果新节点是现有节点之一的子串,它也会匹配。