【发布时间】: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