如果insert或update或delete语句是动态的或基于select语句,以便事先不知道插入或更新或删除的行数,是否有内置函数返回该数字?
答案 0 :(得分:1)
可以得到受影响的记录
mysql_query('DELETE FROM mytable WHERE id < 10');
printf("Records deleted: %d\n", mysql_affected_rows());
答案 1 :(得分:1)
mysql_affected_rows()
或mysql_query()
的语句后,可能会立即调用<mysql_real_query()
UPDATE
。它返回最后一个语句更改,删除或插入的行数(如果它是DELETE
,INSERT
或SELECT
。对于mysql_affected_rows()
语句,mysql_num_rows()
的作用类似于{{1}}。
http://dev.mysql.com/doc/refman/5.0/en/mysql-affected-rows.html
答案 2 :(得分:0)
是使用:
SELECT ROW_COUNT();
发布插入/删除/ ..一行。
答案 3 :(得分:0)
在Java或为数据库提供接口的任何其他语言中,insert和update函数返回表中更新的行数。
以下是Java中的示例示例。
表名是样式,其架构定义为:
mysql> desc sample;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name | varchar(45) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
1 row in set (0.04 sec)
在表中插入行的Java程序如下:
import java.sql.*;
public class Dbconnectivity {
public static void main(String[] args) throws Exception {
new com.mysql.jdbc.Driver();
Connection myconn = DriverManager.getConnection("jdbc:mysql://localhost:3307/test","root","password");
Statement st = myconn.createStatement();
String query = "insert into test.sample values('random')";
int x = st.executeUpdate(query);
System.out.println("Number of records inserted : "+x);
}
}
输出:
在代码中,变量x保存插入表中的记录数。
对于动态插入,您可以使用相同的代码并根据需要查找累积总和。