据我所知,我不能在Insert语句中使用where子句,但在这里我想要做的是如果不存在相同类型的行,我想插入一个新行,否则我需要更新该行。所以我需要使用where子句来做到这一点。这是我的查询但由于where子句而无效。有人可以帮我这个。
谢谢。
"INSERT INTO "
. "`leaves_count` "
. "(`leave_cat_id`, `leave_days_count`, `emp_number`) "
. "VALUES ('$req_lv_cat', $req_lv_day_count, '$empNmbr') "
. "ON DUPLICATE KEY UPDATE "
. "leave_days_count = leave_days_count + ($req_lv_day_count) "
. "WHERE "
. "(leave_cat_id = '$req_lv_cat' AND emp_number = '$empNmbr')"
答案 0 :(得分:0)
请使用合并声明。它会做"如果存在UPDATE,则INSERT"。
MERGE <hint> INTO <table_name>
USING <table_view_or_query>
ON (<condition>)
WHEN MATCHED THEN <update_clause>
WHEN NOT MATCHED THEN <insert_clause>;
答案 1 :(得分:0)
我在这里发帖,希望对你有所帮助
INSERT INTO table (id,a,b,c,d,e,f,g)
VALUES (1,2,3,4,5,6,7,8)
ON DUPLICATE KEY
UPDATE a=a, b=b, c=c, d=d, e=e, f=f, g=g;