[英]Executing an update statement with a select subquery clause in C
我有以下我在C中運行的sql:
snprintf(sql, 200, "update rec set name = (select name from pers where id = %d )
where id = %d",rec_id , emp_id );
mysql_query(conn, sql)
返回一個成功的結果,但它在“name”字段中的“rec”表中放置1而不是名稱,但是當我printf
輸出並在MySQL中使用它時它工作正常。
update rec set name = (select name from pers where id = 104 ) where id = 43
我的sprintf
有什么問題嗎? 或者必須添加一些東西?
我也試過像這樣的靜態sql命令
snprintf(sql,"update rec set name = (select name from pers where id = 104 ) where id = 43");
它還在rec.name中加1
這是由於子查詢返回的記錄數量? 你可以通過設置一個返回例如2條記錄的條件進行驗證,以便將名稱設置為2嗎? 如果這是原因(雖然性能較差的方法)嘗試拆分查詢,看看它是否有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.