MySQL从起始值开始排序
在产品页面上,我有一个下拉列表,列出与产品页面相关的当前颜色选项 在本例中,产品页面SKU为250E,可在以下位置获得:MySQL从起始值开始排序,mysql,sql,select,sql-order-by,Mysql,Sql,Select,Sql Order By,在产品页面上,我有一个下拉列表,列出与产品页面相关的当前颜色选项 在本例中,产品页面SKU为250E,可在以下位置获得: GREEN BLACK 如果客户选择绿色,那么我想运行一个MySQL命令,该命令将首先根据下面显示的自定义顺序值更改数据以显示绿色值 起始值应覆盖其他数据项,然后应保留自定义顺序值。custom_order字段包含c1、c2等字母(它们将始终位于底部) 从按客户订单描述订购的产品中选择* 现在,我想做以下工作: 从产品中选择*,其中按自定义订单排序,起始值='6' 因此,无
GREEN
BLACK
如果客户选择绿色,那么我想运行一个MySQL命令,该命令将首先根据下面显示的自定义顺序值更改数据以显示绿色值
起始值应覆盖其他数据项,然后应保留自定义顺序值。custom_order字段包含c1、c2等字母(它们将始终位于底部)
从按客户订单描述订购的产品中选择*
现在,我想做以下工作:
从产品中选择*,其中按自定义订单排序,起始值='6'
因此,无论怎样,c1、c2都保持不变,结果将是:
22 250E cdn_hash_5.jpg 6 5
23 250E cdn_hash_6.jpg 6 6
24 250E cdn_hash_1.jpg 5 1
225 250E cdn_hash_2.jpg 5 2
226 250E cdn_hash_3.jpg 5 3
227 250E cdn_hash_4.jpg 5 4
325 250E cdn_hash_c1.jpg - c1
426 250E cdn_hash_c2.jpg - c2
527 250E cdn_hash_c3.jpg - c3
其中
条件应位于ORDER BY
子句之前
SELECT *
FROM products
WHERE START_VALUE = '6'
ORDER BY order
作为旁注,ORDER
是一个保留的
关键字。一种逃避的方法是用背勾包装。例如
SELECT *
FROM products
WHERE START_VALUE = '6'
ORDER BY `order`
另一种方法是提供别名
SELECT *
FROM products p
WHERE START_VALUE = '6'
ORDER BY p.order
但是回顾你的问题,你想定制数据,对吗?您可以使用字段
,例如
SELECT *
FROM products
ORDER BY FIELD(`order`, 6) ASC
SELECT *
FROM products
ORDER BY FIELD(`order`, 6) ASC
请澄清你的问题。如果您想要所有记录,请使用如下查询
从按colorID ASC、ORDER DESC订购的产品中选择*这是我一直在寻找的答案。我希望我没有被否决,但我设法解决了这个问题 让我再解释一下更简单的术语。MySQL ORDER BY+以..开头
MySQL:
id | name |
------------
1 | Joe |
2 | Craig |
3 | Shawn |
4 | Ryan |
5 | Seth |
PHP:
我想做的是,我想从id:3开始,所以它应该输出:
3,4,5,1,2
解决方案1
解决方案2
您可以使用字段
,例如
SELECT *
FROM products
ORDER BY FIELD(`order`, 6) ASC
SELECT *
FROM products
ORDER BY FIELD(`order`, 6) ASC
明智的做法是重命名您的
order
列ORDER
是mysql中的一个保留字。谢谢。更新。从答案来看,我认为您需要澄清排序顺序。是否应将START\u值
应用于colorID
以首先放置具有该ID的条目(按自定义顺序
排序),然后仅使用自定义顺序
对其余条目进行排序?是。确切地说,我已经更新了一点这个问题……那么起始值考虑到了哪里?为什么要删除start value
我在你的专栏中看不到start value
。您想定制订单吗?列表中的第一个应以值6
开始?我喜欢你之前的答案。是,如果客户从页面的表单字段中选择颜色。下拉值是6或30-无论什么,然后它应该首先从该组开始..我只是回滚答案,我应该取消其中哪一个?@Blackbenzkid,这就是我攻击它们的原因。使用字段如何?
3 Shawn
4 Ryan
5 Seth
1 Joe
2 Craig
SELECT *
FROM products
ORDER BY FIELD(`order`, 6) ASC