【发布时间】:2022-11-13 17:31:34
【问题描述】:
我想为 Woo 数据库模式构建一个 MySQL 查询以获取简单/可变产品,但按特定顺序:我想以 ID ASCending 顺序获取它们,但是当满足可变产品时,我想要得到完全低于其父级的变化。
因此,对于简单产品或可变产品的父级,post_type 字段设置为“产品”,post_parent 字段设置为 0。对于可变产品(即变体)的子级,@987654326 @ 字段设置为“variable_product”,post_parent 字段设置为父产品的ID。
所以,想象一下这个期望的顺序:
| ID | post_title | post_type | post_parent |
|---|---|---|---|
| 1100 | title1 | product | 0 |
| 1104 | title2 | product | 0 |
| 1130 | title2 - variation1 | variable_product | 1104 |
| 1200 | title2 - variation2 | variable_product | 1104 |
| 1208 | title2 - variation3 | variable_product | 1104 |
| 1107 | title3 | product | 0 |
| 1111 | title4 | product | 0 |
| 1205 | title4 - variation1 | variable_product | 1111 |
| 1210 | title4 - variation4 | variable_product | 1111 |
| 1430 | title4 - variation3 | variable_product | 1111 |
| 1432 | title4 - variation2 | variable_product | 1111 |
因此,通过上表,您可以看到我希望产品按其 ID 排序,直到满足产品的变体,我希望将其放置在其父级下,并且也按其 ID 对其自身进行排序。所以我不关心没有按字母顺序排序的标题(title4-variation4 排序在 title4-variation3 之上,因为变体的 ID 是按升序排序的)。
所以我试着用ORDER BY ID ASC, post_parent ASC 和ORDER BY ID ASC, post_type ASC 玩一点,因为产品按字母顺序排序在variation_product 上方,但我无法正确排序。我总是以父产品的排序高于变体,只是因为它们的 ID 更小。
SELECT * FROM wp6c_posts WHERE post_type IN ('product', 'product_variation') ORDER BY ID ASC, post_parent ASC;
显然我必须查询表 wp6c_posts 两次,一次是针对简单/父产品,然后是针对可变产品的变体,但我想不出正确的查询。
有人可以帮我弄这个吗?
【问题讨论】:
标签: mysql wordpress woocommerce variable-product