我正在研究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)执行查询并得到所有结果?
或者
还有其他建议吗?
谢谢!
答案 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."')");