使用mysql的CONCAT()作为列名

时间:2019-11-18 06:04:02

标签: php mysql database concatenation

我想通过将字符串与函数连接来UPDATE数据库列。假设我有两列sum_likes_c1sum_likes_c2,并且我有一个名为$class的函数,具有1或2个值

所以我希望查询根据$class值更新列

我当前的代码(不起作用):

if (isset($function)) {
    $class = 1;
    } else $class = 2;

    $update_likes = mysqli_query($con, "UPDATE posts SET CONCAT(sum_likes_c,'$class') ='$total_likes' WHERE id='$post_id'");

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

CONCAT()是字符串函数,不能将其用于标识符的列名。您必须在PHP中串联。 See how to do it properly

也就是说,如果您需要串联以获得一个可口的名字,很可能(例如99%)您的数据库设计是错误的。必须有一个单独的表来收集您的喜欢,最好使用INSERT,而不是UPDATE

答案 1 :(得分:-1)

尝试一下:

if (isset($function)) {
$class = 1;
} else $class = 2;

$column = "sum_likes_c" . $class;

$update_likes = mysqli_query($con, "UPDATE posts SET ".$column." = ".$total_likes." WHERE id = ".$post_id);