带有IN子句的MySQL Query

时间:2015-03-25 11:38:23

标签: php mysql

我正在研究PHP和我们想要执行的查询: - 1:查询 -

SELECT m.sku AS sku FROM merchant m WHERE m.sku IN ('B00TSHIWCE,B00TRPS43Y,B00PGL6W6E,B00M7D93QU,B00U2E5EPA,B00TSHE1RO,B00T687TBA,B00SYFZMSS,B00SPVDTUY,B00RZY4YZG');

没有显示任何错误,查询执行成功,结果为无。

但是当我们改变我的查询时: -

2:查询 -

SELECT m.sku AS sku FROM merchant m WHERE m.sku IN ('B00TSHIWCE', 'B00TRPS43Y', 'B00PGL6W6E', 'B00M7D93QU', 'B00U2E5EPA', 'B00TSHE1RO', 'B00T687TBA', 'B00SYFZMSS', 'B00SPVDTUY', 'B00RZY4YZG');

然后它给我结果。

我有一个字符串,我们在1:Query中传递一个字符串。

$sku = "B00TSHIWCE,B00TRPS43Y,B00PGL6W6E,B00M7D93QU,B00U2E5EPA,B00TSHE1RO, B00T687TBA,B00SYFZMSS,B00SPVDTUY,B00RZY4YZG";

但MySql想要这样的字符串我们在2中传递的是:查询: -

    $sku1 = "'B00TSHIWCE','B00TRPS43Y','B00PGL6W6E','B00M7D93QU','B00U2E5EPA','B00TSHE1RO', 'B00T687TBA','B00SYFZMSS','B00SPVDTUY','B00RZY4YZG'";

这个我们不想通过。

任何其他想法如何使用此字符串($ sku)执行查询并得到所有结果?

或者

还有其他建议吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

使用find_in_set功能:

create table merchant (sku varchar(50));
insert into merchant values ('B00TRPS43Y');
insert into merchant values ('FOOBARBAZ');
insert into merchant values ('B00TSHE1RO');
insert into merchant values ('BAZBARFOO');

SELECT m.sku AS sku
FROM merchant m
WHERE find_in_set(
    m.sku, 'B00TSHIWCE,B00TRPS43Y,B00PGL6W6E,B00M7D93QU,B00U2E5EPA,B00TSHE1RO,B00T687TBA,B00SYFZMSS,B00SPVDTUY,B00RZY4YZG'
);

结果:

sku
B00TRPS43Y
B00TSHE1RO

答案 1 :(得分:-1)

尝试使用以下代码:

$sku2 = str_replace(",","','",$sku);
mysql_query("select m.sku as sku from merchant m where m.sku IN   ('".$sku2."')");