MySQL 通过命令导出查询结果
近期由于工作原因,接触到了 Linux 的一些操作,也接触到数据库中有很多结果集时的一些处理。
经常会做的就是将数据库中上亿的数据通过 MySQL 的查询导出,通过 phpMyAdmin 和 SQLyog 等一些数据库管理工具处理起来就不方便了,会经常因为查询太大而丢失数据库链接,所以就只能通过服务器端执行 MySQL 命令的方式来导出了。由于是本地命令行操作,所以数据量再大也不会丢失链接。
在 MySQL 的官方有关于此命令的详细说明,我这里主要记录了我常用到的“SELECT … OUTFILE …”的示例。
1 |
SELECT id, username INTO OUTFILE '/tmp/users.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM users WHERE type=1 ORDER BY id DESC LIMIT 100; |
关于此命令的说明:
1 2 3 |
FIELDS TERMINATED BY ',' #设置字段间的分隔符 OPTIONALLY ENCLOSED BY '"' #字段包围,对数值类型为效 LINES TERMINATED BY '\n' #每行之间的分隔符 |
后面的设置项是可以省略的,默认情况:
字段之间用“制表符(\t)”,无字段包括符,每行之间用“换行符(\n)”。
执行成功后,便会在 OUTFILE 后面设置的文件路径中找到导出的文件。
春天
不知该以什么为题,也不知要写什么内容,一切都很乱。似乎是经历着一些,过去就过去了,也许是一种历练。
我厌恶这种感受,所有希望都破灭的感受。也许本就是梦,而我却把梦境当真了,以致无法醒来,不愿醒来……
我知道再痛苦的事也终究会过去,过去之后再回想会觉的自己好像又成长了一些,大概这就是人生吧。
好多话,不愿讲出,还在记录在日记里吧。
一切没有想象的那么糟
没想到会是如此的结局,自己像个傻子一样。
哎,这一切没有想象的那么糟。一切会过去,一切会好想来。
不停对自己心说“一切没有想象的那么糟”,看看窗外,天空依然湛蓝,世界依然美好。这应该会是一次成长,一股刻骨铭心的痛……
随着时间的流逝慢慢变淡吧。
何时才能学会电吉他SOLO…
这两天把我的木吉他放在了角落里,从已经铺满灰尘的吉他箱里取出将近半年没有碰过的电吉他,准确认真真学习。因为之前一直心里会觉的电吉他拿取不方便,不如木吉他方便,无聊的时候拿起来就可以扫几下,而电吉他总装在吉他箱里,要练习还要取出来,然后接上效果器,接上音箱,跨上背带,相比之下好像木吉他更容易打发时间,所以把木吉他放了起来,把电吉他从吉他箱里取出摆放在随手可以拿到吉他架上,让电吉他容易拿到,这样我就没有不再练习的理由了。
但看书真的有好多疑惑,比如交替拨弦拨不准,小指不灵活,经常会在抬起时碰到别的弦,不会制音,弹solo时会有一些杂音。所以很容易坚持一两天就慢慢的消除了自己仅有的那一点点兴趣。
昨晚试着用手机录了一段视频,主要是想看一下我在按和弦时与其他人弹奏有什么不同,因为我怕自己的指法错误,没有发现而一直错下去;还有一个原因就是想看看自己更换和弦时的那种感觉,因为刚开始学习时我肯定的认为在1秒中从一个和弦换到另一个和弦是不可能的。其实录了之后,还发现很多问题,比如:扫弦时右手看起来很别扭、左手按和弦看上去也很别扭,貌似是自己手太大的原因?
博客,何去何从?
细细算来,我的这个博客已经建成有5年多了。写博文的热情也随着时间的流逝和自己的成长慢慢越来越淡,但还是会以有一个个人博客而感到骄傲。
随着互联网的飞速发展,现如今“微博”(这里主指内地的weibo)已经逐渐让更多的人青睐。因为她不需要自己投入资金,也不需要任何制作网站的专业技能,更主要的是她的“简”,最多只可以发表 255 个字符的内容,或者只需要直接转发其他人的内容,所以不用花很多的精力来维护。越来越多的人喜欢在上面分享自己的“吃喝拉撒”,以博得其他人的关注或注意。因此其中的“粉”便成了维护微博的主要目的,也成了公众人物的专用媒体。除了一些我认为很有个性的人物,如“吹神”、“楚噢”等一些人,他们不会去申请“认证”,也不允许陌生人回复,可能是为了增长神秘感,或许更主要的是他们想要自己的一些空间。
记的08年刚刚知道 Twitter 时,我们更多的是用他来做为博客的附属工具,在博客添加挂件,以来分享自己的短言论或即时信息。
但博客有一个我认为非常好的特点,在博客里我认识了如“Tan Cheng”、“lq“、”赵海峰“等等帮助过我的朋友,虽然大家没有见过面,彼此也没有太多的交流,仅仅是通过互相阅读对方的文章来了解对方的喜怒哀乐,但这种感觉很真诚。
像我这种上学时作文水平就很差的人,在自己的博客上写一些自己的事,很困难,但很真诚,每一个字都用我笨拙的思维在努力的想,可能正是因为这份真诚我才在这里收获到了很多。
或许博客对我们的意义就是记录和分享生活的点滴,到自己已经不在这个世界时,其他人同样可以通过互联网知道我们的曾经来过,知道我们曾经的点点滴滴。
感谢每一个帮助过我的朋友和来到这里的朋友。
又到六月,念家驹
1993年6月30日,香港殿堂级摇滚乐队Beyond主唱及灵魂人物——黄家驹,于日本东京女子医院不幸逝世,至今已经20年了。
家驹的英年早逝,使他的一生更加充满传奇色彩。
我一直认为家驹是我的精神领袖,我总是能从他的歌曲中找到精神慰籍。我已经记不清自己什么时候开始听到黄家驹这个名字,但我依然记的我听到家驹的第一首歌“真的爱你”,正是因为这首郎朗上口的歌曲,我开始搜寻所有关于黄家驹的资料。随着对家驹的不断了解,我开始被家驹的人格魅力所吸引。
随时家驹离开我们的时间越来越久,也越来越多的人开始关注黄家驹,可能时间越长,他的音乐越经得住考验。尤其是Beyond乐队前吉他手黄贯中参加“中国好声音”后,越来越多的媒体和越来越多的人开始间接的认识Beyond乐队,得知了黄家驹的传奇事迹。
在众多怀念家驹的活动中,我们的怀念已经显的微不足道,但我依然想说一声:家驹,我们永远怀念您!
Android TextView 显示网络图片,点击放大
最近在做一个 android app 的应用,一个很简单的应用。
要在 TextView 中显示从网络上获取的内容,内容是HTML格式,在网上查了资料,发现用“Html.fromHtml()”方法可以生成一个支持HTML的文本对象,在这个方法中可以实现“ImageGetter”接口来处理图片,在 TextView 中显示网络图片,网上有很多讲解,但我想要让 TextView 中的图片可以点击放大,再查询网络,发现“TagHandler”接口可以处理HTML标签,通过重写这个方法,可以实现对自订标签的支持和点击事件。
但不知道如何获取标签中的内容,后来通过不断的查询资料,得知从 Editable 中获取一个 Span 对象数组,然后可以通过相应的 Span 来获取相应的资料。有了思路,马上写代码测试,完全可行。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
@Override public void handleTag(boolean opening, String tag, Editable output, XMLReader xmlReader) { // 当 tag 为 img 时进行相应处理 if (tag.toLowerCase().equals("img")) { int len = output.length(); // 获取图片资源地址 ImageSpan[] images = output.getSpans(len-1, len, ImageSpan.class); String imgUrl = images[0].getSource(); /** 更多相关处理代码省略 */ } } |
TextView 中监听图片点击事件,实现图片点击放大,我在网上找过很多资料,有很多地方说不可以实现,我就通过反编译QQ的APP来查看,发现也是通过 TextView 来实现的,因此才继续找相关的代码示例。最终在一个示例中处理URL的事件看到一个“UrlSpan”,我才会去想是不是也有一个“ImageSpan”呢,在 Eclipse 中输入“ImageSpan”,果然有这个类,最终才解决这个问题。
在这里贴出示例代码(点击下载:TextView-TEST),希望可以帮到也同样遇到此问题的朋友。
使用小米盒子看电视直播
在5月9日有幸抢到了一台“小米盒子”,小米盒子可要比当初小米手机好抢多了。本周二就收到了快递,刚收到时迫不及待的想体验一下家里的老式电视效果如何,但由于网络线路出了问题,只着忍着兴奋等到晚上网络接通。
小米盒子默认安装的是CNTV的客户端软件,这个软件不怎么好用,不可以看直播,片源也少。我就开始在网上查找可以用小米盒子看直播的方法,终于在 YouKu 上的一个视频评论里看到了这个软件“泰捷视频TV版”(在最后会提供附件下载)。因为小米盒子是基于 Android 系统的,所以 Android 的一些软件在小米盒子上也是可以使用的。
用手机数据库连接到电脑的USB接口,等USB驱动安装完成后,打开命令提示符(CMD),输入“adb install APP_NAME”,这样就安装成功了。
但是默认的桌面是小米盒子的桌面,看不到安装的第三方应用程序,所以就要下载一个 Android 的桌面 APP,我找到了一个叫做“兔子桌面”的 APP,在TV上显示效果很好,同样安装好“兔子桌面”后,按遥控器上的“主页”键,然后选择“兔子桌面”,这时的操作就和手机上基本相同的。
如果没有安装 adb tools 的话,可以使用 360手机助手 或者其他手机助手进行安装。
当然我们还可以安装更多应用,使你的电视功能更强大!
无耻的中国联通
内地用户都知道,Facebook, Youtube 等这些国外的社交分享网站,内地是无法访问的。而在最近,访问 Facebook 或 Youtube 时会被跳转到所谓的“联通服务提示”(以前叫做“域名纠错系统”)的地址,我们姑且认为这是联通为了广告创收。
也有的朋友会访问任何不存在地址都被会强行跳转至“联通服务提示”的页面,解决方法就是修改 DNS 服务器,将 DNS 服务器改为“8.8.4.4”或“8.8.8.8”,这2个地址是 Google 免费提供的 DNS 服务器,这样就不会跳转到那个恶心的页面了。
可尽管如此,有时候还会被无耻的联通所劫持。
最近访问到有“Facebook Like box”的页面,都会莫名其妙的跳转至域名为 nfdnserror17.wo.com.cn 的地址,使的这些嵌入”Facebook Like box”的网站无法进行正常测试。
通过分析发现,在访问 Facebook 时我这里会返回一个 302 的 HTTP 响应代码,而转向的地址为IP “218.26.132.68”的地址,而这个地址又会跳转到 nfdnserror17.wo.com.cn 这个地址。
我向联通投诉过,但得到的答复是把责任都推给了 Facebook 这样的网站方,说是他们进行了跳转,与联通无关。投诉无门,只好自己来解决了(如果我是律师,我一定会将联通告上法庭)
我们还是说修改方法吧,对于联通这样无耻的公司,实在是没办法。
修改方法很简单,只需要修改 Host 文件,在 Windows 操作系统中的地址为“C:\Windows\System32\drivers\etc\hosts”文件(C指系统安装所在的磁盘),在其中添加一行为:
1 |
127.0.0.1 nfdnserror17.wo.com.cn #可以根据实际情况修改这里的域名 |
这样,访问带有 Facebook Like box 或 Youtube Video 的页面就不会出现跳转的情况了。
初识Python!
“Python”这个分类已经建立了很长时间了,但之前一直不知道用 Python 究竟可以做什么。
我最开始是被 Python 简洁而漂亮的语法而吸引,她使用强制缩进的语法使得代码看起来相当漂亮,一目了然。但我最初想使用她来开发 Web 程序,但后来感觉用她来开发 Web 真的不如用 PHP 来的顺手,可能是我习惯了 PHP 可以在 HTML中嵌套的方法,再之我一直没有在 Apache 中通过 Module 的方式的正确的运行过 Python,因此一直就没有使用。
但对这个语言有过了解,她功能强大,语法简洁!我便一直都记住了这个语言。
这段时间我发现了她真正的用处,这对我来说是一个好事,使得我有理由去学习这门语言,让这门语言为我来做些事情。
例如,我想要通过程序来处理上万条数据,要通过程序来判断数据中的地址是否可以使用 Google Maps API 获取坐标,因为有的地址可能由于格式问题不能够正确获取坐标。任何程序语言都可以做到这点,但如果用 PHP 的话无法进行多线程处理(可能我还不会),用 Java 的话相比 Python 又需要较多的代码编写,因此 Python 便成了最佳的选择。语法简洁让我有了用 Python 的最大理由。
当然,Python 还可以帮助我做更多的事情。
Python 的安装非常简单,只需要在 www.python.org 下载所对应的安装包进行安装就可以了,基本不需要其他设置,或者需要在环境变量中添加 Python 的执行目录,就可以开始你的 Python 之旅了!
1 |
print 'Hello, Python!' |
就像上面这样,一个最基本,最简单的 Python 程序就写好了,运行后会输出“Hello, Python!”。当然,这个程序并不能做什么有意义的事情,在以后我会分享更多关于我学习 Python 的事情。