我有两个表cw_users
和ref_users
,两个表都有一个名为id
的列。
我正在使用ISAM,因此无法使用外键。
所以现在我想将id
中的cw_users
插入到ref_users
中,如果它不存在的话。
这就是我所做的,但没有帮助:
$id = $_SESSION['id'];
$ref_code=md5($id);
mysql_query("INSERT INTO ref_users (id) VALUES ('$id') WHERE NOT EXISTS (SELECT FROM cw_users where id='$id')");
答案 0 :(得分:0)
正确的语法是INSERT IGNORE INTO
INSERT IGNORE INTO ref_users (id)
VALUES ('$id')
如果值不存在,它将插入,如果存在,则忽略该语句。
请注意,这仅在id
是主键
编辑:从您的评论中可以看出,使用ON DUPLICATE KEY UPDATE
会更好。
尝试此查询
INSERT INTO ref_users(id, ref_code)
VALUES ('$id', '$ref_code')
ON DUPLICATE KEY UPDATE
ref_code = '$ref_code'
答案 1 :(得分:0)
...WHERE NOT EXISTS (SELECT id FROM ...
答案 2 :(得分:0)
为什么不运行普通插入,如果存在行则会失败?
答案 3 :(得分:0)
您的查询是
"INSERT INTO ref_users (id) VALUES ('$id') WHERE NOT EXISTS (SELECT FROM cw_users where id='$id')"
您无法使用插入查询中的案例。你可以使用普通插入。