当我跑步时
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我知道如何连接到数据库,加载和更新内容,但我不知道如何切换段落?需要帮助。
答案 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