如果你需要直接从命令行获取MySQL查询语句结果,那么你可以使用-B和-N这两个参数来达到目的。
例:获取MySQL用户数。
[root@localhost ~]# mysql -BN -uroot -predhat mysql -e ‘select count(*) from user‘6[root@localhost ~]#
-B参数:去掉边框
-N参数:只显示结果
本文出自 “昨夜星辰” 博客,请务必保留此出处http://yestreenstars.blog.51cto.com/1836303/1655139
直接从命令行获取MySQL查询语句结果
标签:直接获取 mysql 查询结果
小编还为您整理了以下内容,可能对您也有帮助:
mysqldump可以导出sql查询结果吗
命令行进入musqlmp,使用语句
mysqlmp -u用户名 -p -c --default-character-set=字符集 数据库名 数据表 --where="查询条件" > 保存路径和文件名
导入查询结果:mysql -u用户名 -p -c --default-character-set=字符集 数据库名 < 保存路径和文件名
例如:
查询出数据库jc1992中jc_arctiny的发布时间晚于2014年9月1日的数据并保存在本地磁盘D的mysqltmp目录下,保存为2.sql,在命令行中输入:
mysqlmp -uroot -p -c --default-character-set=utf8 jc1992 jc_arctiny --where="senddate>UNIX_TIMESTAMP('2014-9-1')" > D:mysqltmp2.sql
Python怎么获取mysql查询的信息并且截取?
可以使用Python的MySQL Connector来连接MySQL数据库,然后执行SQL查询语句。查询结果是一个结果集,每一行代表一个记录,可以使用for循环或者fetchone()函数来逐行遍历结果集,并对每一行进行处理。
以下是一个代码示例:
import mysql.connector
# 连接数据库
cnx = mysql.connector.connect(user='your_username', password='your_password',
host='your_host', database='your_database')
# 创建游标
cursor = cnx.cursor()
# 执行查询语句
query = "SELECT * FROM your_table"
cursor.execute(query)
# 遍历结果集
for (column1, column2, column3) in cursor:
# 处理每一行
# ...
# 关闭游标和数据库连接
cursor.close()
cnx.close()
如果你想截取查询结果的一部分,可以在执行查询语句时使用LIMIT关键字来*结果集的大小:
query = "SELECT * FROM your_table LIMIT 10"
这样只会查询前10条记录。
Python怎么获取mysql查询的信息并且截取?
可以使用Python的MySQL Connector来连接MySQL数据库,然后执行SQL查询语句。查询结果是一个结果集,每一行代表一个记录,可以使用for循环或者fetchone()函数来逐行遍历结果集,并对每一行进行处理。
以下是一个代码示例:
import mysql.connector
# 连接数据库
cnx = mysql.connector.connect(user='your_username', password='your_password',
host='your_host', database='your_database')
# 创建游标
cursor = cnx.cursor()
# 执行查询语句
query = "SELECT * FROM your_table"
cursor.execute(query)
# 遍历结果集
for (column1, column2, column3) in cursor:
# 处理每一行
# ...
# 关闭游标和数据库连接
cursor.close()
cnx.close()
如果你想截取查询结果的一部分,可以在执行查询语句时使用LIMIT关键字来*结果集的大小:
query = "SELECT * FROM your_table LIMIT 10"
这样只会查询前10条记录。
linux命令行下使用mysql,怎么导出查询的记录集
用命令select * from table into outfile 'xxx.txt';就可以把查询数据导出在当前数据库保存位置的xxx.txt文件里面了。
也可以直接在linux命令用mysql -h127.0.0.1 -uroot -pXXXX -P3306 -e"select * from table" > /tmp/test.txt
linux命令行下使用mysql,怎么导出查询的记录集
用命令select * from table into outfile 'xxx.txt';就可以把查询数据导出在当前数据库保存位置的xxx.txt文件里面了。
也可以直接在linux命令用mysql -h127.0.0.1 -uroot -pXXXX -P3306 -e"select * from table" > /tmp/test.txt
如何在mysql控制台中查看数据库表
打开命令行,在命令行里输入mysql,然后按回车就可以打开mysql的命令了。
要注意的是区分大小写,不能输入Mysql。
02进入命令后,可以使用use命令来转到我们要查看的数据库。
比如 use test
(test是一个数据库名)
03切换了数据库后,我们就可以查看这个数据库的表数据了。
通过select语句就可以查询表数据了,但要注意的是每条语句要以分号结束,否则就当语句还没结束。会等待输入。
04以分号结束语句后,按回车键就能得到从表查询出来的数据了。
dos命令行怎么查询mysql数据库
mysql数据的查询是通过sql语句来实现的,常用的查询操作如下:
1、连接数据库
mysql -u 用户名 -p 用户密码
说明:可以在命令中直接接入密码,也可以不加入密码。
2、查看所有数据库
show databases;
3、选择数据库
use databasename;
3、查看该数据库下所有表
show tables;
4、查看表的区段
describe 表名;
5、查询表数据
select 字段名 from 表名;
dos命令行怎么查询mysql数据库
mysql数据的查询是通过sql语句来实现的,常用的查询操作如下:
1、连接数据库
mysql -u 用户名 -p 用户密码
说明:可以在命令中直接接入密码,也可以不加入密码。
2、查看所有数据库
show databases;
3、选择数据库
use databasename;
3、查看该数据库下所有表
show tables;
4、查看表的区段
describe 表名;
5、查询表数据
select 字段名 from 表名;
怎样使用命令行查看mysql数据库
使用命令行连接mysql数据库:
windows操作系统下,开始——运行,打开"运行"对话框,输入cmd,点击“确定”即可进入dos窗口。
dos窗口输入登录mysql数据库命令
mysql
-h
127.0.0.1
-u
root
-p
命令参数说明:
mysql是登录数据库的命令,-h
后面跟服务器的ip,由于本示例mysql服务器安装在本地,因此ip地址为127.0.0.1;-u
后面跟用户名,本示例采用
root用户登录;-p
后面跟登录密码。
输入上述命令后回车,再输入登录密码,在回车即可完成登录mysql数据库服务了。跟着可以运行use
databasename语句操作某个数据库了
怎样使用命令行查看mysql数据库
使用命令行连接mysql数据库:
windows操作系统下,开始——运行,打开"运行"对话框,输入cmd,点击“确定”即可进入dos窗口。
dos窗口输入登录mysql数据库命令
mysql
-h
127.0.0.1
-u
root
-p
命令参数说明:
mysql是登录数据库的命令,-h
后面跟服务器的ip,由于本示例mysql服务器安装在本地,因此ip地址为127.0.0.1;-u
后面跟用户名,本示例采用
root用户登录;-p
后面跟登录密码。
输入上述命令后回车,再输入登录密码,在回车即可完成登录mysql数据库服务了。跟着可以运行use
databasename语句操作某个数据库了
在mysql中,只能使用命令行方式查询?
1.第一招、mysql服务的启动和停止net stop mysqlnet start mysql。
2.第二招、登陆mysql语法如下: mysql -u用户名 -p用户密码键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了。
3.第三招、增加新用户格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询。
4.第四招: 操作数据库登录到mysql中,然后在mysql的提示符。
在mysql中,只能使用命令行方式查询?
1.第一招、mysql服务的启动和停止net stop mysqlnet start mysql。
2.第二招、登陆mysql语法如下: mysql -u用户名 -p用户密码键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了。
3.第三招、增加新用户格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询。
4.第四招: 操作数据库登录到mysql中,然后在mysql的提示符。
shell执行mysql语句后怎么得到得到返回的结果?
本文介绍 MySQL 8.0 shell 子模块 Util 的两个导入特性 importTable/import_table(JS和python 版本的命名差异)、importJson/import_json的使用方法。
其中 import_table 是通过传统 MySQL 协议来通信,Import_json 是通过 X 插件协议来通信。MySQL 一直以来提供导入文件 SQL 命令 load data infile(单线程)以及对应的可执行文件 mysqlimport(多线程)。
比如我导入 100W 行示例数据到表 ytt.tl1,花了 24 秒。这个已经是 MySQL 默认导入来的最快的。分析那我们现在看下 mysqlimport 工具的升级版,mysqlshell 的 util 工具集。
使用这两个工具之前,必须得临时开启 local_infile 选项。1. import_table建立 3306 端口的新连接我这里切换为 python 模式清空掉示例表 Ytt.tl1import_table 有两个参数,第一个参数定义导入文件的路径,第二个定义相关选项,比如导入的格式,并发的数量等。定义文件路径(参数1)定义选项(参数2)执行导入:只花了不到 17 秒,比传统 mysqlimport 快了不少。
我们上面指定了显式指定了字段分隔符,那有没有已经定义好的组合格式呢? 答案是有的,选项 dialect 可以指定以下格式:csv,tsv,json,csv-unix那么上面的导入,我们可以更简单,改下变量 y_options1 的定义导入时间差不多。这里要说明下,dialect 选项的优先级比较低,比如添加了'linesTerminatedBy':' ', 则覆盖他自己的' '。
选项 diaelect 还有一个可选值为 json,可以直接把 json 结果导入到文档表里。比如我新建一张表 tl1_json重新定义文件以及导入选项。导入 JSON 数据速度也还可以,不到 24 秒。那导入 json 数据,就必须得提到以 X 插件协议通信的工具 import_json了。2. imort_json我们切换到 mysqlx 端口import_json 参数和 Import_table 参数类似,这里我改下选项我在手册上没有看到多线程的选项,所以单线程跑 35 秒慢了些。查看刚刚导入的数据import_json 不仅仅可以导入 Json 数据,更重要的是可以在 BSON 和 JSON 之间平滑的转换,有兴趣的同学可以去 TRY 下。
shell执行mysql语句后怎么得到得到返回的结果?
本文介绍 MySQL 8.0 shell 子模块 Util 的两个导入特性 importTable/import_table(JS和python 版本的命名差异)、importJson/import_json的使用方法。
其中 import_table 是通过传统 MySQL 协议来通信,Import_json 是通过 X 插件协议来通信。MySQL 一直以来提供导入文件 SQL 命令 load data infile(单线程)以及对应的可执行文件 mysqlimport(多线程)。
比如我导入 100W 行示例数据到表 ytt.tl1,花了 24 秒。这个已经是 MySQL 默认导入来的最快的。分析那我们现在看下 mysqlimport 工具的升级版,mysqlshell 的 util 工具集。
使用这两个工具之前,必须得临时开启 local_infile 选项。1. import_table建立 3306 端口的新连接我这里切换为 python 模式清空掉示例表 Ytt.tl1import_table 有两个参数,第一个参数定义导入文件的路径,第二个定义相关选项,比如导入的格式,并发的数量等。定义文件路径(参数1)定义选项(参数2)执行导入:只花了不到 17 秒,比传统 mysqlimport 快了不少。
我们上面指定了显式指定了字段分隔符,那有没有已经定义好的组合格式呢? 答案是有的,选项 dialect 可以指定以下格式:csv,tsv,json,csv-unix那么上面的导入,我们可以更简单,改下变量 y_options1 的定义导入时间差不多。这里要说明下,dialect 选项的优先级比较低,比如添加了'linesTerminatedBy':' ', 则覆盖他自己的' '。
选项 diaelect 还有一个可选值为 json,可以直接把 json 结果导入到文档表里。比如我新建一张表 tl1_json重新定义文件以及导入选项。导入 JSON 数据速度也还可以,不到 24 秒。那导入 json 数据,就必须得提到以 X 插件协议通信的工具 import_json了。2. imort_json我们切换到 mysqlx 端口import_json 参数和 Import_table 参数类似,这里我改下选项我在手册上没有看到多线程的选项,所以单线程跑 35 秒慢了些。查看刚刚导入的数据import_json 不仅仅可以导入 Json 数据,更重要的是可以在 BSON 和 JSON 之间平滑的转换,有兴趣的同学可以去 TRY 下。
linux 进入mysql 命令行模式怎么导出
1、在终端中输入mysql -u用户名 -p密码命令可以进行mysql命令行
2、如果密码有特殊字符就先mysql -u用户名 -p回车,然后提示输入密码后,再输入密码回车即可
3、mysql 其它参数说明:
mysql命令行参数
Usage: mysql [OPTIONS] [database] //命令方式
-?, --help //显示帮助信息并退出
-I, --help //显示帮助信息并退出
--auto-rehash //自动补全功能,就像linux里面,按Tab键出提示差不多,下面有例子
-A, --no-auto-rehash //默认状态是没有自动补全功能的。-A就是不要自动补全功能
-B, --batch //ysql不使用历史文件,禁用交互
(Enables --silent)
--character-sets-dir=name //字体集的安装目录
--default-character-set=name //设置数据库的默认字符集
-C, --compress //在客户端和服务器端传递信息时使用压缩
-#, --debug[=#] //bug调用功能
-D, --database=name //使用哪个数据库
--delimiter=name //mysql默认命令结束符是分号,下面有例子
-e, --execute=name //执行mysql的sql语句
-E, --vertical //垂直打印查询输出
-f, --force //如果有错误跳过去,继续执行下面的
-G, --named-commands
/*Enable named commands. Named commands mean this program's
internal commands; see mysql> help . When enabled, the
named commands can be used from any line of the query,
otherwise only from the first line, before an enter.
Disable with --disable-named-commands. This option is
disabled by default.*/
-g, --no-named-commands
/*Named commands are disabled. Use \* form only, or use
named commands only in the beginning of a line ending
with a semicolon (;) Since version 10.9 the client now
starts with this option ENABLED by default! Disable with
'-G'. Long format commands still work from the first
line. WARNING: option deprecated; use
--disable-named-commands instead.*/
-i, --ignore-spaces //忽视函数名后面的空格.
--local-infile //启动/禁用 LOAD DATA LOCAL INFILE.
-b, --no-beep //sql错误时,禁止嘟的一声
-h, --host=name //设置连接的服务器名或者Ip
-H, --html //以html的方式输出
-X, --xml //以xml的方式输出
--line-numbers //显示错误的行号
-L, --skip-line-numbers //忽略错误的行号
-n, --unbuffered //每执行一次sql后,刷新缓存
--column-names //查寻时显示列信息,默认是加上的
-N, --skip-column-names //不显示列信息
-O, --set-variable=name //设置变量用法是--set-variable=var_name=var_value
--sigint-ignore //忽视SIGINT符号(登录退出时Control-C的结果)
-o, --one-database //忽视除了为命令行中命名的默认数据库的语句。可以帮跳过日志中的其它数据库的更新。
--pager[=name] //使用分页器来显示查询输出,这个要在linux可以用more,less等。
--no-pager //不使用分页器来显示查询输出。
-p, --password[=name] //输入密码
-P, --port=# //设置端口
--prompt=name //设置mysql提示符
--protocol=name //使用什么协议
-q, --quick //不缓存查询的结果,顺序打印每一行。如果输出被挂起,服务器会慢下来,mysql不使用历史文件。
-r, --raw //写列的值而不转义转换。通常结合--batch选项使用。
--reconnect //如果与服务器之间的连接断开,自动尝试重新连接。禁止重新连接,使用--disable-reconnect。
-s, --silent //一行一行输出,中间有tab分隔
-S, --socket=name //连接服务器的sockey文件
--ssl //激活ssl连接,不激活--skip-ssl
--ssl-ca=name //CA证书
--ssl-capath=name //CA路径
--ssl-cert=name //X509 证书
--ssl-cipher=name //SSL cipher to use (implies --ssl).
--ssl-key=name //X509 密钥名
--ssl-verify-server-cert //连接时审核服务器的证书
-t, --table //以表格的形势输出
--tee=name //将输出拷贝添加到给定的文件中,禁时用--disable-tee
--no-tee //根--disable-tee功能一样
-u, --user=name //用户名
-U, --safe-updates //Only allow UPDATE and DELETE that uses keys.
-U, --i-am-a-mmy //Synonym for option --safe-updates, -U.
-v, --verbose //输出mysql执行的语句
-V, --version //版本信息
-w, --wait //服务器down后,等待到重起的时间
--connect_timeout=# //连接前要等待的时间
--max_allowed_packet=# //服务器接收/发送包的最大长度
--net_buffer_length=# //TCP / IP和套接字通信缓冲区大小。
--select_limit=# //使用--safe-updates时SELECT语句的自动*
--max_join_size=# //使用--safe-updates时联接中的行的自动*
--secure-auth //拒绝用(pre-4.1.1)的方式连接到数据库
--server-arg=name //Send embedded server this as a parameter.
--show-warnings //显示警告
linux 进入mysql 命令行模式怎么导出
1、在终端中输入mysql -u用户名 -p密码命令可以进行mysql命令行
2、如果密码有特殊字符就先mysql -u用户名 -p回车,然后提示输入密码后,再输入密码回车即可
3、mysql 其它参数说明:
mysql命令行参数
Usage: mysql [OPTIONS] [database] //命令方式
-?, --help //显示帮助信息并退出
-I, --help //显示帮助信息并退出
--auto-rehash //自动补全功能,就像linux里面,按Tab键出提示差不多,下面有例子
-A, --no-auto-rehash //默认状态是没有自动补全功能的。-A就是不要自动补全功能
-B, --batch //ysql不使用历史文件,禁用交互
(Enables --silent)
--character-sets-dir=name //字体集的安装目录
--default-character-set=name //设置数据库的默认字符集
-C, --compress //在客户端和服务器端传递信息时使用压缩
-#, --debug[=#] //bug调用功能
-D, --database=name //使用哪个数据库
--delimiter=name //mysql默认命令结束符是分号,下面有例子
-e, --execute=name //执行mysql的sql语句
-E, --vertical //垂直打印查询输出
-f, --force //如果有错误跳过去,继续执行下面的
-G, --named-commands
/*Enable named commands. Named commands mean this program's
internal commands; see mysql> help . When enabled, the
named commands can be used from any line of the query,
otherwise only from the first line, before an enter.
Disable with --disable-named-commands. This option is
disabled by default.*/
-g, --no-named-commands
/*Named commands are disabled. Use \* form only, or use
named commands only in the beginning of a line ending
with a semicolon (;) Since version 10.9 the client now
starts with this option ENABLED by default! Disable with
'-G'. Long format commands still work from the first
line. WARNING: option deprecated; use
--disable-named-commands instead.*/
-i, --ignore-spaces //忽视函数名后面的空格.
--local-infile //启动/禁用 LOAD DATA LOCAL INFILE.
-b, --no-beep //sql错误时,禁止嘟的一声
-h, --host=name //设置连接的服务器名或者Ip
-H, --html //以html的方式输出
-X, --xml //以xml的方式输出
--line-numbers //显示错误的行号
-L, --skip-line-numbers //忽略错误的行号
-n, --unbuffered //每执行一次sql后,刷新缓存
--column-names //查寻时显示列信息,默认是加上的
-N, --skip-column-names //不显示列信息
-O, --set-variable=name //设置变量用法是--set-variable=var_name=var_value
--sigint-ignore //忽视SIGINT符号(登录退出时Control-C的结果)
-o, --one-database //忽视除了为命令行中命名的默认数据库的语句。可以帮跳过日志中的其它数据库的更新。
--pager[=name] //使用分页器来显示查询输出,这个要在linux可以用more,less等。
--no-pager //不使用分页器来显示查询输出。
-p, --password[=name] //输入密码
-P, --port=# //设置端口
--prompt=name //设置mysql提示符
--protocol=name //使用什么协议
-q, --quick //不缓存查询的结果,顺序打印每一行。如果输出被挂起,服务器会慢下来,mysql不使用历史文件。
-r, --raw //写列的值而不转义转换。通常结合--batch选项使用。
--reconnect //如果与服务器之间的连接断开,自动尝试重新连接。禁止重新连接,使用--disable-reconnect。
-s, --silent //一行一行输出,中间有tab分隔
-S, --socket=name //连接服务器的sockey文件
--ssl //激活ssl连接,不激活--skip-ssl
--ssl-ca=name //CA证书
--ssl-capath=name //CA路径
--ssl-cert=name //X509 证书
--ssl-cipher=name //SSL cipher to use (implies --ssl).
--ssl-key=name //X509 密钥名
--ssl-verify-server-cert //连接时审核服务器的证书
-t, --table //以表格的形势输出
--tee=name //将输出拷贝添加到给定的文件中,禁时用--disable-tee
--no-tee //根--disable-tee功能一样
-u, --user=name //用户名
-U, --safe-updates //Only allow UPDATE and DELETE that uses keys.
-U, --i-am-a-mmy //Synonym for option --safe-updates, -U.
-v, --verbose //输出mysql执行的语句
-V, --version //版本信息
-w, --wait //服务器down后,等待到重起的时间
--connect_timeout=# //连接前要等待的时间
--max_allowed_packet=# //服务器接收/发送包的最大长度
--net_buffer_length=# //TCP / IP和套接字通信缓冲区大小。
--select_limit=# //使用--safe-updates时SELECT语句的自动*
--max_join_size=# //使用--safe-updates时联接中的行的自动*
--secure-auth //拒绝用(pre-4.1.1)的方式连接到数据库
--server-arg=name //Send embedded server this as a parameter.
--show-warnings //显示警告
怎么在mysql命令行中返回mysql的影响行数
mysql_affected_rows()
返回最近一次与
连接句柄
关联的
INSERT,UPDATE
或
DELETE
查询所影响的记录行数.FOUND_ROWS()
:
select
ROW_COUNT()
:
update
delete
insert.
FOUND_ROWS()
:
select
ROW_COUNT()
:
update
delete
insert.
MySQL的函数中,SELECT是另外一个单独的函数
FOUND_ROWS()
,
UPDATE等是
ROW_COUNT()
如下案例:
mysql>
INSERT
INTO
t
VALUES(1),(2),(3);
Query
OK,
3
rows
affected
(0.00
sec)
Records:
3
Duplicates:
0
Warnings:
0
mysql>
SELECT
ROW_COUNT();
+-------------+
|
ROW_COUNT()
|
+-------------+
|
3
|
+-------------+
1
row
in
set
(0.00
sec)
mysql_affected_rows
(PHP
3,
PHP
4
,
PHP
5)
mysql_affected_rows
--
取得前一次
MySQL
操作所影响的记录行数说明
int
mysql_affected_rows
(
[resource
link_identifier])
mysql_affected_rows()
返回最近一次与
连接句柄
关联的
INSERT,UPDATE
或
DELETE
查询所影响的记录行数。如果连接句柄没有指定,
则默认使用最近一次由
mysql_connect()
函数打开的连接句柄。
注:
如果你使用事务处理(transactions),你需要在
INSERT,UPDATE
或
DELETE
查询后调用
mysql_affected_rows()
函数,而不是在
commit
命令之后。
如果最近一次操作是没有任何条件(WHERE)的
DELETE
查询,
在表中所有的记录都会被删除,但该函数返回值为
0。
注:
当使用
UPDATE
查询,MySQL
不会将原值和新值一样的列更新。
这样使得
mysql_affected_rows()
函数返回值不一定就是查询条件所符合的记录数。
只有真正被修改的记录数才会被返回。
mysql_affected_rows()
函数不适用于
SELECT
语句;只适用于能够修改记录的语句中。请使用
mysql_num_rows()
函数来获得
SELECT
所返回的记录行数。
如果最近一次查询失败的话,函数返回
-1。
例子
1.
Delete
操作
?php
/*
连接数据库
*/
mysql_pconnect("localhost",
"mysql_user",
"mysql_password")
or
die
("Could
not
connect"
.
mysql_error());
mysql_select_db("mydb");
/*
这会返回有效的被删除记录数。
*/
mysql_query("DELETE
FROM
mytable
WHERE
id
<
10");
printf
("Records
deleted:
%d/n",
mysql_affected_rows());
/*
没有任何条件(where)的删除语句,返回
0
*/
mysql_query("DELETE
FROM
mytable");
printf
("Records
deleted:
%d/n",
mysql_affected_rows());
?
以上的例子会得出下面的运行结果:
Records
deleted:
10Records
deleted:
0
例子
2.
Update
操作
?php
/*
连接数据库
*/
mysql_pconnect("localhost",
"mysql_user",
"mysql_password")
or
die
("Could
not
connect"
.
mysql_error());
mysql_select_db("mydb");
/*
Update
记录
*/
mysql_query("UPDATE
mytable
SET
used=1
WHERE
id
<
10");
printf
("Updated
records:
%d/n",
mysql_affected_rows());
mysql_query("COMMIT");
?
以上的例子会得出下面的运行结果:
Updated
Records:
10
参见
mysql_num_rows()
和
mysql_info()。
mysql_affected_rows()
返回的是对行操作的个数
$query=mysql_query("select
*
from
love_mp3_table
");
mysql_affected_rows();//其实对这个也有效,返回44,在这和mysql_num_rows($query)效果一样
$query=mysql_query("INSERT
INTO
table(id,title,hrefurl)
VALUE('','节节胜利','http://')");
mysql_affected_rows();//返回1
$query=mysql_query("DELETE
FROM
tabel
WHERE
id=45");
mysql_affected_rows();//返回1
$query=mysql_query("UPDATE
table
SET
title='我是'
WHERE
id=44");
mysql_affected_rows();//返回1
怎么在mysql命令行中返回mysql的影响行数
mysql_affected_rows()
返回最近一次与
连接句柄
关联的
INSERT,UPDATE
或
DELETE
查询所影响的记录行数.FOUND_ROWS()
:
select
ROW_COUNT()
:
update
delete
insert.
FOUND_ROWS()
:
select
ROW_COUNT()
:
update
delete
insert.
MySQL的函数中,SELECT是另外一个单独的函数
FOUND_ROWS()
,
UPDATE等是
ROW_COUNT()
如下案例:
mysql>
INSERT
INTO
t
VALUES(1),(2),(3);
Query
OK,
3
rows
affected
(0.00
sec)
Records:
3
Duplicates:
0
Warnings:
0
mysql>
SELECT
ROW_COUNT();
+-------------+
|
ROW_COUNT()
|
+-------------+
|
3
|
+-------------+
1
row
in
set
(0.00
sec)
mysql_affected_rows
(PHP
3,
PHP
4
,
PHP
5)
mysql_affected_rows
--
取得前一次
MySQL
操作所影响的记录行数说明
int
mysql_affected_rows
(
[resource
link_identifier])
mysql_affected_rows()
返回最近一次与
连接句柄
关联的
INSERT,UPDATE
或
DELETE
查询所影响的记录行数。如果连接句柄没有指定,
则默认使用最近一次由
mysql_connect()
函数打开的连接句柄。
注:
如果你使用事务处理(transactions),你需要在
INSERT,UPDATE
或
DELETE
查询后调用
mysql_affected_rows()
函数,而不是在
commit
命令之后。
如果最近一次操作是没有任何条件(WHERE)的
DELETE
查询,
在表中所有的记录都会被删除,但该函数返回值为
0。
注:
当使用
UPDATE
查询,MySQL
不会将原值和新值一样的列更新。
这样使得
mysql_affected_rows()
函数返回值不一定就是查询条件所符合的记录数。
只有真正被修改的记录数才会被返回。
mysql_affected_rows()
函数不适用于
SELECT
语句;只适用于能够修改记录的语句中。请使用
mysql_num_rows()
函数来获得
SELECT
所返回的记录行数。
如果最近一次查询失败的话,函数返回
-1。
例子
1.
Delete
操作
?php
/*
连接数据库
*/
mysql_pconnect("localhost",
"mysql_user",
"mysql_password")
or
die
("Could
not
connect"
.
mysql_error());
mysql_select_db("mydb");
/*
这会返回有效的被删除记录数。
*/
mysql_query("DELETE
FROM
mytable
WHERE
id
<
10");
printf
("Records
deleted:
%d/n",
mysql_affected_rows());
/*
没有任何条件(where)的删除语句,返回
0
*/
mysql_query("DELETE
FROM
mytable");
printf
("Records
deleted:
%d/n",
mysql_affected_rows());
?
以上的例子会得出下面的运行结果:
Records
deleted:
10Records
deleted:
0
例子
2.
Update
操作
?php
/*
连接数据库
*/
mysql_pconnect("localhost",
"mysql_user",
"mysql_password")
or
die
("Could
not
connect"
.
mysql_error());
mysql_select_db("mydb");
/*
Update
记录
*/
mysql_query("UPDATE
mytable
SET
used=1
WHERE
id
<
10");
printf
("Updated
records:
%d/n",
mysql_affected_rows());
mysql_query("COMMIT");
?
以上的例子会得出下面的运行结果:
Updated
Records:
10
参见
mysql_num_rows()
和
mysql_info()。
mysql_affected_rows()
返回的是对行操作的个数
$query=mysql_query("select
*
from
love_mp3_table
");
mysql_affected_rows();//其实对这个也有效,返回44,在这和mysql_num_rows($query)效果一样
$query=mysql_query("INSERT
INTO
table(id,title,hrefurl)
VALUE('','节节胜利','http://')");
mysql_affected_rows();//返回1
$query=mysql_query("DELETE
FROM
tabel
WHERE
id=45");
mysql_affected_rows();//返回1
$query=mysql_query("UPDATE
table
SET
title='我是'
WHERE
id=44");
mysql_affected_rows();//返回1