首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL -为每个用户定制订单

MySQL -为每个用户定制订单
EN

Stack Overflow用户
提问于 2016-08-05 00:46:31
回答 1查看 95关注 0票数 0

我想让我的用户做一个购物车的水果,但也允许他们订购他们想要的方式。我将尽量用最简单的方式解释我的问题。

一个表"user“包含具有自动增量id字段的用户。

代码语言:javascript
复制
-----------------
| id | username |
-----------------

我有一张桌子上的“水果”女巫里面有水果。

代码语言:javascript
复制
--------------
| id | fruit |
--------------

我希望允许用户拥有一个包含水果的购物车,所以我创建了“购物车”表:

代码语言:javascript
复制
---------------------------
| id | user_id | fruit_id |
---------------------------

例如,

我在“水果”里有:

代码语言:javascript
复制
--------------
| 1 | Banana |
| 2 | Apple  |
| 3 | Orange |
--------------

如果用户1想要“购物车”中的每一个

代码语言:javascript
复制
---------------------------
| id | user_id | fruit_id |
---------------------------
| 1  |    1    |     1    |
| 2  |    1    |     2    |
| 3  |    1    |     3    |
---------------------------

所以如果我执行:

代码语言:javascript
复制
SELECT fruit_id FROM cart WHERE user_id = 1;

我会:

代码语言:javascript
复制
------------
| fruit_id |
------------
|     1    |
|     2    |
|     3    |   
------------

但是我希望允许我的用户通过一个jQuery可排序数组重新排列它的购物车,以便MySQL为他排序。

我认为有一种解决方案似乎不是最好的方法:用user_id和一串需要解析的fruit_id重做“购物车”表。

第二种方法是删除条目并以良好的顺序重新输入,以便按id排序,但我对这种情况并不满意。

你知道一个更好/更干净的方法吗?

非常感谢您的洞察力/评论/知识。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-05 01:48:33

SQL表表示无序集。类似地,除非使用ORDER BY,否则结果集是无序的。

你似乎有两个选择。如Juergen在评论中所建议的那样,在表中添加一列,比如sort_order

或者,在查询中执行排序:

代码语言:javascript
复制
SELECT fruit_id
FROM cart
WHERE user_id = 1
ORDER BY FIELD(fruit_id, 3, 2, 1);

这将按相反的顺序排序。注意:您也可以使用FIND_IN_SET()

代码语言:javascript
复制
ORDER BY FIND_IN_SET(fruit_id, '3,2,1')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38779516

复制
相关文章

相似问题

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