每一个我有一个像这样的mySQL表:


DATA(sku,quantity)
ABC           55
ABC_DE005     1
ABC_DE006     1
ABC_DE007     1
ABC_DE008     1
DEF           30
DEF_DE56      1
DEF_DE57      1
DEF_DE58      1
DEF_DE59      1
DEF_DE60      1
DEF_DE61      1
XYZ           0
XYZ_DE565     0
XYZ_DE566     0
XYZ_DE567     0
XYZ_DE568     0
XYZ_DE569     0



ABC是主要SKU,ABC_DExx是子SKU,数量始终为1或0。
我的问题是:
如何基于主SKU选择数量超过20的所有SKU?或者如果主SKU的数量超过20,则将选择主SKU及其子SKU。
就像是

     "SELECT * From DATA Where quantity > 20 ..."


以下是我想要的最终结果(主SKU(例如:ABC)及其子SKU(例如:ABC_DExx)将显示,因为主SKU ABC超过20):


DATA(sku,quantity)
ABC           55
ABC_DE005     1
ABC_DE006     1
ABC_DE007     1
ABC_DE008     1
DEF           30
DEF_DE56      1
DEF_DE57      1
DEF_DE58      1
DEF_DE59      1
DEF_DE60      1
DEF_DE61      1



谢谢

最佳答案

我尝试使用CONCAT运算符;请找到以下代码。

Demo

SELECT DATA.sku, DATA.quantity FROM DATA
INNER JOIN (SELECT * FROM DATA WHERE quantity > 20) DATA1 ON
DATA.sku = DATA1.sku OR DATA.sku LIKE CONCAT(DATA1.sku, '%');


输出量

mysql - 特殊选择语句。根据其主要SKU选择所有SKU-LMLPHP

关于mysql - 特殊选择语句。根据其主要SKU选择所有SKU,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50030197/

10-12 23:22