【问题标题】:MySQL concat() not working properlyMySQL concat() 无法正常工作
【发布时间】:2014-03-28 08:02:27
【问题描述】:

在我的数据库表中,我有一个字段,我将用户 ID 存储为逗号分隔的值,例如 1、2、3 等。每个用户 ID 在某个点通过更新添加到该字段。因此,如果字段包含值 1,那么我想在下次更新时将新用户 ID 附加为 ,2,以便所有值都用逗号分隔。

我正在使用以下mysql:

"UPDATE videorating 
    SET total_votes='".$added."', 
        total_value='".$sum."', 
        userid=CONCAT(userid,',$userid'), 
        used_ips='".$insertip."' 
        WHERE videoid='$id_sent'";

这里$userid 将包含用户标识。但这不能正常工作。该字段未更新。这个查询有什么问题。

谁能帮我解决这个问题。提前致谢。

【问题讨论】:

  • 字段根本没有更新或更新不正确?那么其他领域呢?
  • 你有一个设计问题。您不应该在一列中存储多个值。这就是关系表的用途。
  • 试试这个:userid=CONCAT(userid,',',$userid)
  • 请确认,userid字段不应该是int,应该是varchar
  • 谢谢大家..明白了..问题是该字段的数据类型是 int..现在我将其更改为 varchar

标签: php mysql concat


【解决方案1】:

我不确定您的userid 列是否真的是varchar?如果它是varchar(或其他基于文本的),那么您的代码应该可以工作。这与您的相同,但引号太多:

UPDATE videorating
SET total_votes='$added',
    total_value='$sum', 
    userid=CONCAT(userid,',$userid'),
    used_ips='$insertip'
WHERE videoid='$id_sent'";

如果它实际上是int,你不能这样做,你需要重新考虑你想要归档什么。

【讨论】:

    猜你喜欢
    • 2016-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-04
    • 1970-01-01
    • 2020-06-24
    • 2012-05-29
    相关资源
    最近更新 更多