首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用REGEX的PHP ORM Mysql排序

使用REGEX的PHP ORM Mysql排序
EN

Stack Overflow用户
提问于 2010-10-25 03:50:14
回答 1查看 159关注 0票数 2

你看,我有一组条目要按字母顺序排列。虽然有些条目以" the“开头。我想要的是忽略" the“,开始从下一个单词中排序。例如:

代码语言:javascript
运行
复制
$titles->order_by("name", "ASC")->find_all() // Sample query

  • Abraham
  • Panorama
  • The恶意

我想要的:

  • Abraham
  • The恶意 //忽略sorting
  • Panorama

中的" the“

我真正想要的“

  • Abraham
  • Malevolent,The // Kinda rearranged
  • Panorama

我怎么能在这里做到这一点?

代码语言:javascript
运行
复制
$titles->order_by("name", "ASC")->find_all();

如果没有,你会有什么建议?

我有一个强烈的预感,使用REGEX将达成交易。虽然我不知道如何不进入软件级别。

我使用Kohana 3 ORM,直到上个月才开始使用。手下留情。

非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2010-10-25 06:05:45

您可以使用条件selectsubstring函数;这些函数的确切名称可能因您使用的方言而异。在Transact-SQL中:

代码语言:javascript
运行
复制
select if( left(name,3)='The', SUBSTRING(name,5), name) as name 
from table 
order by name

另一种方法是:使用条件查找“the”部分,并将其替换为空字符串:

代码语言:javascript
运行
复制
select TRIM(
  if(INSTR(shipnam,'The ') > 0, INSERT(shipnam,INSTR(shipnam,'Hyundai'),4,''),
  if(INSTR(shipnam,' The ') > 0, INSERT(shipnam,INSTR(shipnam,'Hyundai'),5,''),shipnam))
) 
as shipname from tablename order by shipname

根据列和表名更改。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4011799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档