【问题标题】:Concatenating original value with query value in MySQL在 MySQL 中将原始值与查询值连接起来
【发布时间】:2016-03-16 00:40:07
【问题描述】:

我一直在尝试在 MySQL 中做一些我在 JavaScript/PHP 中做的事情。我需要将 MySQL 中字段的值与从 PHP 传递到查询中的值连接起来。例如,假设我有一个名为 favourites 的字段,其值为 27,并且我有以下查询:

UPDATE useraccs SET favourites = favourites + ',30' WHERE id='10'

我想要的favourites 的新值是27,30,但我得到的是57,显然SQL 是以数字方式添加它们的。我已将此列的数据类型设置为 TEXT,并希望这会强制 SQL 一直将其视为字符串,但似乎并非如此。

在我的研究中,我读到了 CONCAT() 函数,我尝试了这个:

UPDATE useraccs SET favourites = CONCAT(favourites,',30') WHERE id='10'

这会导致查询失败。逻辑感觉是对的,但这显然不是该函数的用途。

我承认理论上,我可以获取 favourites 的原始值并将其与 PHP 本身中的新值连接起来,然后将其发送到 MySQL,但我觉得必须有办法做到这一点在一个查询中......如果我错了,那就这样吧,但我相信一定有办法。

【问题讨论】:

  • 收藏栏的类型是什么?是整数吗?
  • 正如我在帖子中提到的,它是 TEXT 类型。
  • 我不相信你的添加。你有没有机会写像$sql = "UPDATE ... SET favourites = " . $favourites + ',30' . " .... ;";
  • 你看到了什么错误?
  • 你的id是字符串?错误是什么?收藏什么类型的栏目

标签: php mysql concatenation concat


【解决方案1】:

使用以下命令创建“27,30”:

CONVERT(favourites,char) + ',30'

【讨论】:

    猜你喜欢
    • 2014-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-18
    • 1970-01-01
    相关资源
    最近更新 更多