第一次使用STEEMSQL查询谷哥点名数据
cn·@oflyhigh·
0.000 HBD第一次使用STEEMSQL查询谷哥点名数据
 首先感谢 @arcange 提供 SteemSQL服务,SteemSQL是一个包含STEEM区块链数据的公共MS-SQL数据库。 First thanks @arcange for providing SteemSQL services, SteemSQL is a public MS-SQL database with all the blockchain data in it. ---- 其实SteemSQL上线之初我马上试用过,但是因为当时第一版只包含一些区块链的transaction数据,用起来还有诸多不便,所以后来SteemData一上线,我就转移战场了,尽管我从来未接触过MongoDB。之后,SteemData一直能满足我的需求,所以就懒得转战回来,但是我依然默默关注这个项目,看着它经过十多次升级变得越来越好,也看着很多STEEMIT的朋友开始使用这个数据库。 今天 @jubi 和我说使用SteemSQL 查询中文标题遇到一些困难,用` WHERE title like '%第一次%'`作为查询条件,查询不到相关数据,但是用英文则可以查询,我答应帮他看看。话说最近他在中文区举办两期***谷哥点名***活动,人气火爆,而***第一次***就是第二期活动的主题。估计太火爆,参与人数众多,单纯地靠人工看帖和整理有些辛苦,于是他想着用程序把整理帖子自动化吧。大家都在成长,这非常好。说到SteemSQL最近,中文区的很多朋友都在用,比如 @ace108, 以及 @joythewanderer, 他们还出过一些向导贴,大家感兴趣可以去翻一翻。 又扯远了,言归正传 # 安装pymssql 我懒得去下桌面软件,还是直接用Python吧 Python下可以使用pyodbc 以及 pymssql啥的,我选择的是pymssql 直接在命令行下直接安装指令 `pip3 install pymssql` 嘎,报一大堆错误, 其它啥的都不认识,我关注的大概三句 >Running setup.py bdist_wheel for pymssql ... error > setup.py: Not using bundled FreeTDS >_mssql.c:266:22: fatal error: sqlfront.h: No such file or directory 去官网查了一下 http://pymssql.org/en/stable/building_and_developing.html 有这样一句 >FreeTDS >= 0.91 including development files. Please research your OS usual software distribution channels, e.g, freetds-dev or freetds-devel packages. 缺啥补啥 `sudo apt-get install freetds-dev` `pip3 install pymssql` 成功! # 执行 SteemSQL 官网地址: http://steemsql.com/ 但是很遗憾上边的链接信息不全,没有Database的信息 或许连上之后,就直接可以查出来,不过我在SteemSQL发布的帖子中找到了连接信息 >Server: sql.steemsql.com User: steemit Password: steemit Database name: DBSteem `import pymssql` `conn = pymssql.connect(host ="sql.steemsql.com",database ="DBSteem",user="steemit",password="steemit")` 在Python里用这个直接连上了,很好。 试着查了一下 `cur = conn.cursor()` `cur.execute("SELECT title FROM Comments WHERE author= 'oflyhigh' and title like '%区块链%'")` 因为我昨天刚写了一篇文章, [使用PHP查询STEEM区块链 / Using PHP to query the STEEM blockchain](https://steemit.com/cn/@oflyhigh/php-steem-using-php-to-query-the-steem-blockchain) 为啥就查不到呢? 然后换个关键词 `cur.execute("SELECT title FROM Comments WHERE author= 'oflyhigh' and title like '%PHP%'")` >('How to install Apache、MYSQL、PHP5 and run a Wordpress website on BananaPi',), ('拖了很久的事情终于完成了,将PHP 5.4 升级到 PHP 5.6',), ('使用PHP查询STEEM区块链 / Using PHP to query the STEEM blockchain',) 查出来的文章包含我的最新文章 # 排查 那么是哪里有问题导致的呢? 我第一个直觉是编码问题 然后,我把链接改成 `conn = pymssql.connect(host ="sql.steemsql.com",database ="DBSteem",user="steemit",password="steemit", charset="utf8")` 结果依旧 又去把FreeTDS的配置文件中加上字符集设置 `sudo find / -name freetds.conf` `sudo vi /etc/freetds/freetds.conf` `sudo vi /usr/share/freetds/freetds.conf` 通通加上: `client charset = UTF-8` 结果依旧 尽管我觉得没必要,但是,又在Python文件中加上 `#-*- coding: utf-8 -*-` 结果依旧 从查出的结果能正常显示来看,数据应该是按UTF-8存储的,那问题出在哪里呢?三把板斧用完了,我的找新招数了。 研究半天,发现个新玩意,就是***在查询内容前加个N*** 详情见 https://docs.microsoft.com/en-us/sql/t-sql/data-types/nchar-and-nvarchar-transact-sql >Prefix Unicode character string constants with the letter N. Without the N prefix, the string is converted to the default code page of the database. This default code page may not recognize certain characters. 把我的查询改成: `cur.execute("SELECT title FROM Comments WHERE author= 'oflyhigh' and title like N'%区块链%'")` 查询结果如下: >我也曾经文青过,18年前写的小诗 《花儿》,学laoyao,咱也放到区块链上 使用PHP查询STEEM区块链 / Using PHP to query the STEEM blockchain 珍惜羽毛 / STEEM区块链忠实的记录你的操作 / 获得共同操作账户的真实操作者 YY 一个基于STEEM区块链的聊天工具 STEEM区块链忠实的记录你的言行&操作 终于可行了 # 再查谷歌点名贴 现在在回头查参加谷歌点名的第二次活动的帖子,主题为`第一次` `cur.execute("SELECT title,created FROM Comments WHERE title like N'%第一次%' and created > '2017/08/01' order by created")` `rows = cur.fetchall()` `for row in rows: print("{}\t{}".format(row[0], row[1]))` 结果如下: >Magic Clay 你第一次用黏土做了什么呢? 2017-08-01 14:13:45 第一次花費從steemit賺到的收益 ! The first time I get the 'real' money from steemit! 2017-08-02 06:11:21 第一次与你们的对话,my first conversation with y'all . 2017-08-03 18:32:51 第一次在steemit cn发文 感谢steemit让我能接触Bitcoin 2017-08-04 17:09:18 第一次人体解剖课上的惊悚事件 2017-08-07 11:30:48 第一次 - 離鄉別井 | “谷哥点名”活动 2017-08-09 07:10:30 相约大美新疆,第一次在第13届全国冬运会现场 Meet the beauty of Xinjiang,first time in China national winter games 2017-08-09 08:31:15 My first encounter with steemit/我与steemit的第一次邂逅 | 谷歌点名 2017-08-09 10:15:33 我人生的N种第一次 2017-08-09 10:31:48 第一次认识这个世界 2017-08-09 10:52:12 第一次 - 英國行山篇 "谷歌点名"活動 Hiking South Downs Way England 2017-08-09 11:00:00 【参加谷哥点名】我在Steemit的第一次发帖 2017-08-09 13:07:39 第一次离开熟悉的地方外出闯荡 2017-08-09 14:12:33 成就人生的第一次 2017-08-09 14:26:54 第一次 // First Time 2017-08-09 17:11:42 人生第一次——不仅有酸甜苦辣,更有悲欢离合 2017-08-09 18:12:18 第一次 - The First Time (Chinese content only but feel free to comment in English if you understsand) - (by @ace108) 2017-08-10 00:34:03 第一次, 细看妈妈的皱纹| “谷哥点名”活动 2017-08-10 01:11:24 爱上第一次--First Exploration 2017-08-10 01:22:15 如何看待你人生中的第一次? 2017-08-10 01:24:48 ?? 老道茶館 ??-請上坐,喝杯茶,說點事;今日話題-第一次 (跨域合作:茶館X谷哥点名) ?? LAODR Tea House ?? 170810 2017-08-10 02:06:03 #隨筆2 第一次 | 谷哥点名 2017-08-10 03:55:33 第一次在星级大酒店吃饭 2017-08-10 04:09:12 第一次绝恋--最后的初恋 The first but also last love. 2017-08-10 04:37:30 第一次品味人生百态 My First Time - Ups and Downs in Life 2017-08-10 05:10:51 第一次 ── 我和我的友生 2017-08-10 05:14:57 第一次拿到在steemit上写作的钱 2017-08-10 05:44:24 领导,今天是我第一次喝酒,可不可以。。。 2017-08-10 06:52:42 第一次去博物馆之中国古代的酒具 The ancient wine cups of the Chinese history 2017-08-10 11:40:54 第一次去油菜花地里玩,种下了心灵里的树 2017-08-10 13:56:00 My first and long leave from my hometown // 第一次離鄉別井 2017-08-10 18:45:03 The first time i made my rose steamed buns 第一次做玫瑰花馒头! 2017-08-10 21:50:18 第一次 — 住在大学宿舍经历 / 谷哥点名活动 | My university life, my first time living in a university hostel 2017-08-10 23:03:06 第一次 - 在第一次家族旅行 - 台中 (內有家族旅行的心得)| The first time - My first family trip - Tai Chung 2017-08-11 01:16:42 很多第一次的第一次 | "谷哥点名" 2017-08-11 01:30:00 第一次“体验”做父母的感觉 / The First Time for Being a "Parent" | 谷歌点名 2017-08-11 04:10:27 第一次来华文区时的情景与华文区如何发展 2017-08-11 06:23:21 第一次注册域名 2017-08-11 08:18:54 第一次,科學研究的第一次/ “谷哥点名”活动 The First time: The Tirst Time for Scientific Research 2017-08-11 09:15:57 第一次去海边 —— “温良恭俭让”的北威尔士海滨小镇兰迪德诺 2017-08-11 09:28:42 第二期“谷哥点名”活動: 第一次 離鄉別井 2017-08-11 09:36:03 我的第一次的虛擬人生 2017-08-11 10:22:18 一天之内的两个第一次 2017-08-11 10:37:51 总算没辜负 @jubi 小友的信任 # 补充 @jubi 用另外一种方法 `WHERE contains(title, '第一次')` 可以查出部分数据 我搜索了一下,contains是基于全文索引进行查询 但结果可能受系统分词方法的影响导致不全 当然,也可能是我不会使用的缘故 😭 ---- 也加俩***第一次***关键字参赛,重在参与 另外,万一中奖呢,哈哈哈
👍 oflyhigh, eval, prateek547, joythewanderer, sylvia1997, shirlam, arama, azka-amillia, andy2007, auntigormint, jubi, wahyusaputra, michaelwilshaw, wylo, amat, exec, blackbunny, minimalpris, xiaohui, somebody, wongshiying, lalala, janiceting, myfirst, attilaloe, chinadaily, completelyanon, cryptohustler, steemtruth, ethansteem, jrobi, nextgen622, yyyy, htliao, xiaokongcom, travelgirl, livingfree, laoyao, lingfei, devilwsy, wilkinshui, mark-waser, digital-wisdom, jwaser, davidjkelley, ethical-ai, bwaser, ellepdub, herpetologyguy, morgan.waser, handyman, strong-ai, technoprogressiv, cornerstone, nicolemoker, sanzo, kingjan, revelim, ribalinux, deanliu, raku, sebastianjackson, malakah, freedom-fighter, shakibsarker, swaticute, omwith, helene, wanderwithtwo, davidzack, profitgenerator, anubisthegaylord, dgarsan, aismor, silentlucidity53, gordonovich, midnightoil, ldauch, abetterworld, raviraj4you, sweethoney, glennolua, kingofdew, marcuswilliams, hammadakhtar, crypsis, zhijun, doraemon, rogermarx, biophil, rok-sivante, robrigo, ozymandias, ojaber, lemooljiang, jasonpay1, kanokwan, sweetsssj, brianhphotos, shenchensucc, jademont, stacee, dragon40, aomura, emcvay, jkkim, cryptoninja, feelapi, aaronli, sandra, ihashfury, jason, money-alchemist, linuslee0216, idx, abit, crimsonclad, followbtcnews, beautifulbella, chessmasterhex, benderisgreat, coinbitgold, rea, mhelows, sem89, mandagoi, happychau123, allenshayzar, steemitcu, mabre, davaowhenyo, asterix87, manuel78, exprmnt, resteeming, steemitlietuva, btsabc, batraiselis, ravenousappetite, jukas, elconserje, allabout, krischy, rizkirz, siddm96, cryptousage, astarte89, arkoko, good-joinned, trafalgar, bestmz, victorier, davidconstantine, fundurian, falcao12, lazariko12, marylewis, awkwardawk, sneakgeekz, gellany, pakyeechan, themystic, runridefly, roy92, mrpointp, ridwan-kamil, candiceji, chris77d, kakaobank, geoffrey, dmb168, dheerajdj, simonsayz, ace108, beautypics, hopsken, ikenna, black-eye, writer1, slowwalker, lawrenceho84, taufik, parkers, yourahea, porlacarretera, cryptoron, herlife, gr3g0r, isabelpena, vcelier, daniel007, mousum, kitcat, natasha79, sephiroth, zeidlitwhips, tuongvile, lilcandyboss, xenitron, bakingsoda, danee94, nickwalshblog, blacktranquility, syedanas, pratibha, izar, bucho, allamo121, okdubai, rivalhw, nigeldarren, free999enigma, dhabal, shieha, katkar, denisreach, joseluismejia, ramiashqar, e-bass, almustaghfiri, jajabormanus, boshler, artax89, gavvett, ahmedkedd, freetosteemdream, travelmuse, siriusden, ayuwandira, kunrishartanto, upasos, skenan, maros, techtek, vetmed, masterycon, guytremat, xto, mrs.ginger, vargapauline, azis, arvindsingh, luneknight, naresh1, medas, bukharisulaiman, rmaxhuni, negojobs, kyawhlaing, hobby-club, slava7450745, yusrizal08, vipnata, justyy, zulkabar, suavimani, hiltonrp, themeanbean, biltu1995, the3metrewrap, biuiam, awinyaksteemit, douglasfranco, coocoocachoo, azisjesika, benjy87, magicmonk, tungie, hanshotfirst, devilcat, zulkarnaini58, elevator09, aaronaugustine, janny, chandrarai, cristian-mesa, lsc9999, dsian, stevepaul, siniceku, munzil, sharoon, twinkledrop, steemav, jezequiel, rooneey, lamorte, adnanshakeel, fatamorgan, sharif99, ejemai, saifulyukache, bukhairidin, duekie, flauschi, tsinrong, mamamyanmar, resteem.bot, varungohil, crisgojar, lydiachan, syahrulrahmat, sujitkhanal, firesteem, nationalpark, na722, shasol, countzero, jmehta, kolex, youknow212012, sweeti, rupaibabu, kolasam, solomonsojay, gladiator4war, marier, swssmarketing, aek081969, jerrybanfield, cybertiger, tvb, kangnajiang, davidk, englishtchrivy, pharesim, cheonillhwan, nerdylab, ernestoperez, samuelsunday, azfix, contenidos,