簡體   English   中英

在C中使用select子查詢子句執行更新語句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM