我有一个表,它有一个逗号分隔的列表(以varchar的形式),如果列表中不存在用户id,我就要更新它。
我正在node.js应用程序中运行语句。我不完全确定如何通过sql语句来实现它。以下是我所拥有的:
'UPDATE `tablename` SET `t` = "' + memberId + '" WHERE rowId = ' + id
这将取代整个记录。我只想将memberid添加到 t
如果它不存在。 t
看起来像这样: '1652,47,245,783,2,3,55,738,2306'
;
所以如果我想再加15,应该是 '1652,47,245,783,2,3,55,738,2306,15'
;
我希望在sql语句中执行此操作,而不是提取字段数据,然后将其添加到javascript(node.js)中的字符串中,然后更新记录。
1条答案
按热度按时间wljmcqd81#
使用
FIND_IN_SET
分析字符串值并确定该id是否存在于逗号分隔的列表中。有关详细信息,请参阅完整文档
FIND_IN_SET
在这里:https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_find-成套
psuedo查询将是:
当然,插值
${rowId}
根据需要生成查询。