簡體   English   中英

使用 PHP/MYSQL 需要 INSERT 到具有 IN 條件的表

[英]With PHP/MYSQL need to INSERT to a Table With a IN Condition

我正在 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 字符串中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM