我有一个包含值的表,主键是带增量的唯一 ID。 其次,我有另一个表,用于保存第一个表中的 id 以及其他数据。 id 存储在已经使用的列中 has_used 列应如下所示:1,2,3,4,5,6....
现在我使用 CONCAT 查询来用数据填充已经使用的列:
UPDATE table2 SET already_used = CONCAT(already_used,', ". $id ."') WHERE id = $table_id
现在我的问题是,如果已经使用的列为空,concat 将产生如下输出:,1,2,3,4,5,6...
因此第一个值前面有一个逗号。如何调整查询,以便第一个值实际上不会在其前面出现逗号?
后来我使用 PHP 将已经使用的数据存储在变量中,然后我想使用 NOT IN 语句查找 table1 中尚未使用的所有行:
SELECT * FROM table1 WHERE id NOT IN($variable)
如果前面有逗号,就会报mysql错误。
最佳答案
切勿在单个列中存储多个值。从来没有!
请更改您的数据库设计,使 table2
中的每条记录仅存储一个 id
。
关于php - 使用带逗号的 concat 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17304829/