Php Mysql按包含字母数字的标题排序

Php Mysql按包含字母数字的标题排序,php,mysql,laravel,eloquent,phpmyadmin,Php,Mysql,Laravel,Eloquent,Phpmyadmin,我有一个标题列,其中包含以下行: Plot 2, Plot 3, Shop 4, Plot 2-A, Plot 4, Plot 2B 我认为应该是这样的: Plot 2, Plot 2-A, Plot 2B, Plot 3, Plot 4, Shop 4 这是通过简单的查询实现的 但是,如果我的表Accounts包含列title、desc、parent\u id 当我运行查询时,按标题从帐户顺序中选择标题 结果是图10、图100、图101、图101B、图102A 虽然我有一些行包含图2B、图

我有一个标题列,其中包含以下行:

Plot 2, Plot 3, Shop 4, Plot 2-A, Plot 4, Plot 2B
我认为应该是这样的:

Plot 2, Plot 2-A, Plot 2B, Plot 3, Plot 4, Shop 4
这是通过简单的查询实现的

但是,如果我的表
Accounts
包含列
title、desc、parent\u id

当我运行查询
时,按标题从帐户顺序中选择标题
结果是
图10、图100、图101、图101B、图102A

虽然我有一些行包含
图2B、图2-A、图3、图4
,这些行不是在上述输出之前通过使用SQL中的“order By”生成的,但它提供了所需的结果

普通SQL:

在SQL中使用“ORDER BY”后:


你的问题是什么?如果您已经编写了一些代码,那么请在这里向我们展示。如果没有,那么请先这样做,如果需要帮助,请告诉我们您遇到了什么困难。您是否向我们提供了所有变体?这样就不会有
商店C-5
?等等?只要一个“ORDERBY”SQL就可以完成这项工作。你试过了吗?@RoAchterberg,我试过了<代码>当title regexp'^[plot | plot]+'时为CASE,当title regexp'^[shop | shop]+'时为0,然后为2 END,LENGTH(title),title@KIKOSoftware这是我所有的行,没有其他变量在表上简单地按顺序排列,但当我尝试使用关系时,它不起作用,我将items表链接到accounts表,accounts表将这些行排序,我的代码是
return$q->join(“accounts”、“accounts.id”、“=”、“items.account\u id”)->orderBy('accounts.title”、“asc')->get()
请不要发布文本图片