Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySql-如果没有记录,请插入多行_Php_Mysql - Fatal编程技术网

Php MySql-如果没有记录,请插入多行

Php MySql-如果没有记录,请插入多行,php,mysql,Php,Mysql,在问这个问题之前,我已经在Google和StockOverflow上搜索了很多条目。没有什么能回答我的问题 有两个表格-团体销售奖金和会员。我想检查组销售奖金中是否已有产品id为1的记录 如果不是,我想将members表中的所有记录插入到product_id为1的group_sale_奖金中 我的总体要求如下: IF ((Select count(id) from group_sale_bonuses where product_id = 1) = 0) THEN INSERT INTO

在问这个问题之前,我已经在Google和StockOverflow上搜索了很多条目。没有什么能回答我的问题

有两个表格-团体销售奖金和会员。我想检查组销售奖金中是否已有产品id为1的记录

如果不是,我想将members表中的所有记录插入到product_id为1的group_sale_奖金中

我的总体要求如下:

IF ((Select count(id) from group_sale_bonuses where product_id = 1) = 0) THEN
    INSERT INTO group_sale_bonuses (member_id, product_id, quantity_counter, credit)  
    SELECT id, 1, 0, 0 FROM members
END IF
但是这个sql导致了错误

我知道有关于插入忽略的解决方案,但不存在

但这些条件检查基于每个记录。我在members表中有数千条记录。我只想做一次条件检查,就像上面的sql示例一样


顺便说一下,我将在Php web应用程序中使用此Sql

只需在WHERE子句中而不是在IF中设置代码即可


这应该适用于所有产品标识

SELECT m.product_id, m.member_id FROM members AS m 
LEFT JOIN group_sale_bonuses AS gsb ON gsb.product_id = m.product_id
WHERE gsb.product_id IS NULL ;
通过添加where子句,可以将其筛选为特定的产品标识

SELECT m.product_id, m.member_id FROM members AS m 
LEFT JOIN group_sale_bonuses AS gsb ON gsb.product_id = m.product_id
WHERE gsb.product_id IS NULL AND m.product_id = 1;

看看这个SQLfiddle:

您得到了哪个错误?@user790454错误是-1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解可使用的正确语法,例如第1行的“IF Select countid from group_sale_bonensions where product_id=1=0 THEN”,我认为您不能在查询中直接使用IF语句,至少我在谷歌上找不到任何相关内容。我认为你应该用你的web应用程序来代替。我知道的唯一if语句是ifcondition,然后this,else。你可以使用例程,但这对你的情况不好。@BenBeri我知道我可以在我的web应用程序中检查这个条件,然后,只需对数据库进行两次操作。但我只是想知道是否只有Sql才有解决方案。
SELECT m.product_id, m.member_id FROM members AS m 
LEFT JOIN group_sale_bonuses AS gsb ON gsb.product_id = m.product_id
WHERE gsb.product_id IS NULL AND m.product_id = 1;