将第一段内容交换为最后一段

时间:2013-03-06 14:24:35

标签: php mysql text phpmyadmin

当我跑步时

SELECT * FROM `content` where article_id=123

我得到了结果

<p>{sometag}some things{/sometag}</p>
<p>some content</p>
<p>some more content</p>

我需要修改该结果才能获得:

<p>some content</p>
<p>some more content</p>
<p>{sometag}some things{/sometag}</p>

注意:第一段移到最后。

我必须在phpMyAdmin上执行此操作,但我也可以使用PHP。在PHP我知道如何连接到数据库,加载和更新内容,但我不知道如何切换段落?需要帮助。

1 个答案:

答案 0 :(得分:0)

我在这里做了很多假设,因为你还没有真正写过问题,甚至没有提供任何信息。

你说“列的内容”所以我假设你将这3个HTML段落标记存储在某个数据库的某个列中,并且你想要改变它们返回的顺序。

您想要的顺序不是字母顺序,因此您无法按存储的值排序。您应该创建一个新列并订购,例如创建一个名为“manual_order”的列,然后创建:

SELECT * FROM table
ORDER BY manual_order

修改

您对帖子的更新清楚地说明了您要做的事情 - 当您“知道”您的意思时,它总是更容易,但对其他人来说并不总是很清楚!

除非您提供ORDER BY子句,否则不能依赖从MySQL返回的结果的顺序。

SELECT * FROM table

如果您没有对该表进行任何DELETE / UPDATE或REPLACE,则会以插入顺序返回。

如果您正在使用INNODB表执行SELECT * FROM表,它们将由PRIMARY KEY订单返回,而不是INSERT订单。

如果要更改订单,则必须提供ORDER BY子句。如果您想要一个在数字方面没有意义的订单,那么按照建议最好创建另一个列,您可以在其中指定订单并在ORDER BY子句中使用它。

如果您正在使用INNODB并想要反向查询的内容,您可以使用:

SELECT * FROM table
ORDER BY primarykey DESC