在产品页面上,我有一个下拉列表,其中列出了与产品页面关联的当前颜色选项。
在此示例中,产品页面SKU为250E,可在以下位置找到:
GREEN
BLACK
如果客户选择GREEN,那么我想运行一个MySQL命令,该命令将根据下面显示的custom_order值更改数据以显示GREEN值。
起始值应该覆盖其他数据项,然后它应该保留custom_order值。 custom_order字段包含字母c1,c2(它们将始终位于底部)
Colour Table
============
ID COLOURID NAME
-------------------------------------
2 5 BLACK
3 6 GREEN
Product Table
=============
ID SKU PICTURE URL COLOURID CUSTOM_ORDER
-----------------------------------------------------------------
22 250E cdn_hash_1.jpg 5 1
23 250E cdn_hash_2.jpg 5 2
24 250E cdn_hash_3.jpg 5 3
225 250E cdn_hash_4.jpg 5 4
226 250E cdn_hash_5.jpg 6 5
227 250E cdn_hash_6.jpg 6 6
325 250E cdn_hash_c1.jpg - c1
426 250E cdn_hash_c2.jpg - c2
527 250E cdn_hash_c3.jpg - c3
SELECT * FROM products WHERE ORDER BY custom_order DESC
现在,我想做以下事情:
SELECT * FROM products WHERE ORDER BY custom_order AND START VALUE ='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
答案 0 :(得分:10)
这是我正在寻找的答案。我希望我没有为此投票,但我设法解决了这个问题。
让我再简单解释一下。 MySQL ORDER BY +以...开头
MySQL:
id | name |
------------
1 | Joe |
2 | Craig |
3 | Shawn |
4 | Ryan |
5 | Seth |
PHP:
$a = mysql_query("SELECT * FROM table_name ORDER BY name DESC");
我想做的是,我想从id:3开始,所以它应该输出:
3,4,5,1,2
SELECT id, name
FROM table_name
ORDER BY id < 3, id
结果:
3 Shawn
4 Ryan
5 Seth
1 Joe
2 Craig
您可以使用FIELD
,例如
SELECT *
FROM products
ORDER BY FIELD(`order`, 6) ASC
答案 1 :(得分:0)
<击> 撞击>
<击> WHERE
条件应该出现在ORDER BY
子句
SELECT *
FROM products
WHERE START_VALUE = '6'
ORDER BY order
作为旁注,ORDER
是RESERVED
个关键字。逃脱它的一种方法是用反引号包裹。例如,
SELECT *
FROM products
WHERE START_VALUE = '6'
ORDER BY `order`
另一个是提供ALIAS
SELECT *
FROM products p
WHERE START_VALUE = '6'
ORDER BY p.order
击> <击> 撞击>
但回头看你的问题,你想自定义数据吗?您可以使用FIELD
,例如
SELECT *
FROM products
ORDER BY FIELD(`order`, 6) ASC
答案 2 :(得分:-2)
请清除你的问题。如果你想要所有记录,请使用如下的查询...
SELECT * FROM products WHERE ORDER BY COLOURID ASC,订购DESC