我正在用PHP/MySQL进行产品搜索。当用户搜索产品(可以搜索多个产品)时,它应从表 A 中获取数据并在表 B 中插入。用户可以搜索多个产品。我在查询中遇到问题。它很慢,并且无法获取与产品搜索相关的所有产品。
我的SQL查询如下:
$arr = explode(",",$values["prod_cat"]);
for ($i=0;$i<count($arr);$i++)
{
$strSQLInsert = "INSERT INTO TABLE B (sup_id, sup_name, sup_product, sup_contactperson,
sup_contactperson_email, tender_id) (SELECT sup_id, sup_name, sup_prod_name, sup_contactperson,
sup_email, ".$values["tender_id"]." FROM TABLE A WHERE sup_prod_name IN ('".$arr[$i]."')
GROUP BY sup_name)";
使用"IN"条件或"LIKE"条件是否好。此查询是实现结果的最佳方式吗?
尝试这样做:
$strSQLInsert = "
INSERT INTO TABLE B
(
sup_id, sup_name, sup_product, sup_contactperson, sup_contactperson_email, tender_id
)
SELECT
sup_id, sup_name, sup_prod_name, sup_contactperson, sup_email, ".$values["tender_id"]."
FROM
TABLE A
WHERE sup_prod_name IN ('".$values["prod_cat"]."')
GROUP BY sup_name";
由于$values["prod_cat"]
已经是一个逗号分隔的字符串,因此您可以将其直接插入SQL字符串中。