sup*_*rue 5 mysql sql wordpress
我有一个帖子表,其标题是"人类"字母顺序,但不是按计算机字母顺序排列.它们有两种形式,数字和字母:
数值:图1.9,图1.10,图1.11 ......
按字母顺序排列:图1A ......图1Z ......图1AA
如果我orderby标题,结果是1.10-1.19介于1.1和1.2之间,1AA-1AZ介于1A和1B之间.但这不是我想要的; 我想要"人类"字母顺序,其中1.10在1.9之后,1AA在1Z之后.
我想知道在SQL中是否还有一种方法可以使用字符串操作来获取我想要的顺序(或者我没有想到的其他东西).
我不是SQL的专家,所以我不知道这是否可行,但如果有办法进行条件替换,那么看起来我可以通过这样做来强加我想要的顺序:
删除期间(可以用replace,对吧?)
如果剩余的图形编号超过三个字符,则0在第一个字符后添加一个(零).
这似乎给了我想要的结果:1.9将成为109,之前的结果110; 1Z会变成10Z,之前来的1AA.但它可以在SQL中完成吗?如果是这样,语法是什么?
请注意,我不想修改数据本身 - 只是按照描述的顺序输出查询结果.
这是在Wordpress安装的上下文中,但我认为这个问题更适合SQL问题,因为各种事物(例如分页)依赖于MySQL查询阶段发生的排序,而不是PHP.
我的第一个想法是添加一个由触发器或其他外部机制更新的附加列。
1) 使用该列进行排序 2) 无论更新该列的机制是什么,都将具有通过代理创建可接受的订单的逻辑(例如,它将把 1.1 变成 AAA 或类似的东西)。
无论如何……这将是一个痛苦。我不认识你。
| 归档时间: |
|
| 查看次数: |
860 次 |
| 最近记录: |