[英]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.