Php MySql-如果没有记录,请插入多行
在问这个问题之前,我已经在Google和StockOverflow上搜索了很多条目。没有什么能回答我的问题 有两个表格-团体销售奖金和会员。我想检查组销售奖金中是否已有产品id为1的记录 如果不是,我想将members表中的所有记录插入到product_id为1的group_sale_奖金中 我的总体要求如下: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
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;