Php 如果值不';不存在
我一直在为这件事发狂。我必须连接三个表,但只有当这三列没有现有值时,我才需要插入数据库。我尝试了重复密钥更新的Php 如果值不';不存在,php,mysql,Php,Mysql,我一直在为这件事发狂。我必须连接三个表,但只有当这三列没有现有值时,我才需要插入数据库。我尝试了重复密钥更新的,不存在的地方,最后我尝试插入忽略,最后一个是不存在的结果,即使存在相同的值,其他人也会插入 我正在努力 insert into TABLE name: set_colors (school_art_id, baseimage_id, sub_folder, layer) school\u art\u id来自另一个名为school\u art baseimage\u id是名为bas
,不存在的地方
,最后我尝试插入忽略
,最后一个是不存在的结果,即使存在相同的值,其他人也会插入
我正在努力
insert into TABLE name: set_colors (school_art_id, baseimage_id, sub_folder, layer)
school\u art\u id
来自另一个名为school\u art
baseimage\u id
是名为baseimage
sub_folder
是baseimage.sub_folder
layer是来自baseimage.layer的值
这是不起作用的查询
INSERT IGNORE INTO set_colors (school_art_id, baseimage_id, sub_folder, layer)
SELECT 'school_art.id', 'baseimage.id', 'baseimage.sub_folder', 'baseimage.layer'
SET school_art_id='school_art.id',
baseimage_id='baseimage.id',
sub_folder='baseimage.sub_folder',
layer=baseimage.layer
有人能告诉我我做错了什么吗
INSERT IGNORE
应该是
INSERT IGNORE INTO
但是,在SELECT或INSERT INTO查询中不可能使用SET
您的查询语法对于SELECT部分已完全中断。您正在选择一系列常量字符串,然后出于某种原因进入“SET”并执行一些赋值。这毫无意义,因为您没有在select中设置值
您的查询应该类似于
INSERT IGNORE INTO set_colors (school_art_id, baseimage_id, sub_folder, layer)
SELECT field1, field2, field3, field4
FROM some_other_table
WHERE ...
我找到了解决方案,以防其他人遇到同样的问题(我把它放在一个类中,这样在调用该类时,{$value}就被传入了)
INSERT IGNORE INTO set_colors (school_art_id, baseimage_id, sub_folder, layer)
SELECT school_art.id, baseimage.id, baseimage.sub_folder, baseimage.layer
FROM school_art
JOIN baseimage ON baseimage.base_folder = school_art.series_code
WHERE baseimage.image_type = 'B' AND school_art.id = '{$value}' ORDER BY school_art.id"
谢谢你们,我都很兴奋,但它仍然不起作用,还有其他想法吗?了解语句应该是什么样子。实际上,可以在SELECT{fields}集合的形式中使用SET和INSERT INTONT…它不是。