【问题标题】:adding value to database via concat but in reverse order (last line will be first)通过 concat 向数据库添加值,但顺序相反(最后一行是第一行)
【发布时间】:2014-02-01 08:18:47
【问题描述】:

有没有什么技巧可以通过 sql 将最后一个输入添加为第一个输入?

在本例中,它在lastline 的末尾添加最后一行:

mysql_query("UPDATE `mytable` SET `lastline` = concat(lastline, '$lastline') WHERE `id`='$id'");

这是向数据库添加值时的当前顺序:

Line #1\r\n
Line #2\r\n
Line #3\r\n
Line #4\r\n

我希望最后一行先添加(不读写lastline的内容)所以进度将直接写在一行上:

Line #4\r\n
Line #3\r\n
Line #2\r\n
Line #1\r\n

谢谢!

【问题讨论】:

    标签: php mysql sql database concat


    【解决方案1】:

    听起来你只需要在这里颠倒你的论点的顺序......

    concat('$lastline', lastline)
    

    旁注:mysql_* 方法已弃用,您应该尽快切换到mysqliPDO。然后查看带有绑定参数的预处理语句,这样你就不会那么容易接受 SQL 注入了。

    【讨论】:

    • 我不敢相信它这么容易 :) 但是让我检查一下:P
    【解决方案2】:

    您可以在 CONCAT 中简单地更改序列:

    mysql_query("UPDATE `mytable` SET `lastline` = concat('$lastline', lastline) WHERE `id`='$id'");
    

    附:还要在查询中转义您的变量。即mysql_real_escape_string

    【讨论】:

      猜你喜欢
      • 2021-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多