php - 使用带逗号的 concat 时出现问题

标签 php mysql concatenation

我有一个包含值的表,主键是带增量的唯一 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/

相关文章:

c# - 将 .Wav 文件按标题连接成 1 个临时文件

php - 如何使用 Codeception 将鼠标悬停在元素上?

python - Pandas dataframe 使用 pd.concat 将字符串替换为 NaN

javascript - jQuery Ajax 回调中的串联未执行?

Mysql减法性能低下

mysql - 如何计算 SQL SUM 函数内求和的行数?

Mysql查询使用数据透视表

php - Laravel/docker-compose/redis - 未找到类 'Redis'

php - 亚马逊 mws api 类 'MarketplaceWebService_Client' 未找到错误

php - 基于分组划分列值(数字)