cassandra cql中like模糊查询可能性

参考:http://www.tsoft.se/wp/2016/08/12/sql-like-operation-in-cassandra-is-possible-in-v3-4/

牙龈细菌会进入大脑 引发AD阿尔茨海默病

口腔健康状况不佳是阿尔茨海默氏症的一个危险因素?目前尚不清楚这两者之间的因果关系,是口腔不健康导致了阿尔茨海默症,还是它仅仅是呈现出来的结果?毕竟,许多阿尔茨海默症患者无法护理自己的牙齿。 据《科学》(Science)杂志官网报道,日前,一项由私人公司赞助的研究证实,导致牙龈疾病的细菌存在于阿尔茨海默氏症患者的大脑中,而不仅仅是口腔中。这项研究还发现,在老鼠身上,这种细菌会引发这种疾病典型的脑部变化。 实际上,近一年来有一波研究均表明,微生物感染可能是阿尔茨海默症的元凶。2018年6月,《细胞》(Cell)子刊《神经元》(Neuron)上的一项研究认为,常见的人类疱疹病毒可能在阿尔茨海默病病情发展过程中发挥作用。今年1月初,《自然》(Nature)子刊《自然-通讯》(Nature Communication)的一项研究提出,常见的、能导致口腔溃疡的白色年菌株可以轻易通过血脑屏障,造成大脑皮层无症状感染,形成与阿尔茨海默症斑块相似的胶质肉芽肿,并造成短暂的记忆障碍。 最新的这项研究则是发表在《科学》(Science)子刊《科学-进展》(Science Advances)。该研究是由美国的生物科技初创公司Cortexyme赞助,公司的联合创始人Stephen Dominy是一名精神病学家,他在上世纪90年代对阿尔茨海默氏症可能因感染所致的想法产生了兴趣。 当时,Dominy尚在加利福尼亚大学旧金山分校治疗艾滋病患者。Dominy在治疗艾滋病患者的过程中发现,一些人患有艾滋病相关的痴呆症,在服用抗病毒药物后认知障碍病情也得到了缓解。 随后,Dominy开始了“副业”,从已故阿尔茨海默症患者的脑组织中寻找牙龈卟啉单胞菌。他还和企业家Casey Lynch一起创办了这家公司,Lynch在研究生时期曾研究过阿尔茨海默症。此前有证据表明,牙齿脱落、牙周疾病和阿尔茨海默症有很深的联系。而牙龈卟啉单胞菌是牙周感染最重要的致病菌,也被认为是β-淀粉样蛋白沉积、阿尔茨海默症的高危风险因素。 Cortexyme公司与欧洲、美国、新西兰和澳大利亚的实验室合作,证实了此前的报道,即在阿尔茨海默症患者的大脑中发现了牙龈卟啉单胞菌。 他们还在活着的患者的脊髓液中检测到了这种微生物的DNA,在50多个阿尔茨海默症患者的大脑样本中,90%以上的人还发现了由牙龈卟啉单胞菌产生的有毒的牙龈蛋白酶。牙龈蛋白酶越多的大脑中,阿尔茨海默症相关的tau蛋白和泛素蛋白的含量也就越高。 阿尔茨海默氏症患者的脑组织中检测到的β-淀粉样蛋白(绿色)和细菌毒素牙龈蛋白酶(红色)。 即使是被选为对照组的大约50名非阿尔茨海默症死者的大脑中,也显示出较低水平的牙龈蛋白酶,暗示已发生了阿尔茨海默症病理。Lynch说,早期发现是很重要的,因为“你会希望它在症状看到之前就出现”。 检测到了牙龈卟啉单胞菌,那么这种细菌是否会引起阿尔茨海默症?研究团队在小鼠中进行了验证。 研究小组每隔一天用牙龈卟啉单胞菌擦拭健康小鼠的牙龈,持续6周,确保感染。随后他们检测到,这些小鼠脑部的细菌、神经元死亡和β-淀粉样蛋白均高于正常水平。 在实验室的一个培养皿中,牙龈蛋白酶(作用是分解蛋白质)破坏了tau蛋白。研究小组认为,在大脑中,这种蛋白质损伤可能会刺激tau蛋白缠结的形成。 反之,研究小组给小鼠注射一种药物,该药物会结合牙龈蛋白酶,比常用的抗生素更有效地清除脑部的牙龈卟啉单胞菌,随之会减少β-淀粉样蛋白的沉积。 Cortexyme公司表示,在对人类志愿者的初步测试中,一种小分子抑制剂药物COR388似乎是安全的,在9名阿尔茨海默症患者中表现出认知能力改善的迹象。而一项规模更大的研究定于今年开始。 哥伦比亚大学神经学家James Noble也在研究牙周病和阿尔茨海默症之间的联系,他表示,Cortexyme公司的研究是迄今为止在阿尔茨海默症的大脑中发现齿龈疟原虫的“规模最大的”研究,而且“显然得到了非常全面的研究”。“这些想法很奇怪,但它们似乎正在产生一些吸引力。” 如果这些发现站得住脚,是否意味着所有感染了牙龈卟啉单胞菌的人都会得阿尔茨海默症?答案当然是未必。但是,Noble说,如果健康的人想要保持安全,并有可能降低风险,“我们的主要结论仍然是:刷牙和使用牙线。

牙龈细菌会进入大脑 引发AD阿尔茨海默病

Z-Blog标签清理小记 通过SQL清理多余标签

标签是文章的第二个维度,网站除了固有的分类之外还可以使用标签对文章进行细分。但是今天发现z-blog后台删除某标签后并不会关联清理帖子数据表中的标签字段。再加上我用插件进行标签合并等操作,合并操作也并不会清理帖子字段中的标签ID,只是把标签表中的ID删除然后合并后的新ID加到帖子表的标签字段,是追加在原有字段后的,因此一打开数据库发现居然有的帖子有四五个标签ID。但其实我每个帖子基本一个标签,多出来的属于冗余ID。于是我在想着怎么清除。网站标签已经被自己清理到只剩几十个了,因此第一步我到 标签表中取得标签ID,依次更新,这样所存在的帖子标签都被更新为一个。UPDATE zbp_post SET log_Tag='{133}' WHERE log_Tag like '%{133}%'按理说现在就只清空不存在的标签ID即可,一般一个标签最大字符长度为5,因为帖子ID已是3位数,两个标签ID的例如{1}{2}字符长度最少为6,运用length将多余字符串长度大于5的进行更新为空字符串。UPDATE zbp_post SET log_Tag=''  WHERE LENGTH(log_Tag)>5剩下的运用substr截取ID字符串,not in (可用标签ID )将不可用标签筛选出来并更新为空。由于有三位数的ID,因此将三位数ID截取前2个数放在IN中UPDATE zbp_post SET log_Tag='' WHERE SUBSTR(log_Tag,2,2) not in(11,12,13)

java穷举0-9之间所有不重复的值

/*五、分析以下需求,并用代码实现:        (1)打印由7,8,9三个数组成的三位数,要求该三位数中任意两位数字不能相同;        (2)打印格式最后的三位数字以空格分隔,如789 798 879 897 978 987。        注:要求使用StringBuilder来完成*/public class HomeWork05 {    public static void main(String[] args) throws IOException {//        输入值并简单处理        Scanner sc = new Scanner(System.in);        System.out.println("请输入起始值(0~9):");        int start=sc.nextInt();        System.out.println("请输入结束值(0~9):");        int end=sc.nextInt();        int bound=end-start+1;        StringBuilder stringBuilder = new StringBuilder();        HashSet<String> set = new HashSet<>();        int cout=0;        Random r = new Random();        long bCount=boundCount(bound);        if (bCount>10000){            System.out.println("结果数超过10000为"+bCount+"计算会很慢,请按任意键继续");            System.in.read();        }//        穷举各种可能,小于正确结果个数持续执行 直到达到正确个数        while (set.size()<bCount) {            int number = r.nextInt(bound) + start;            if (!stringBuilder.toString().contains(String.valueOf(number))&&stringBuilder.toString().length()<bound){                stringBuilder.append(number);            }else if (stringBuilder.toString().length()==bound){                set.add(stringBuilder.toString());                stringBuilder=new StringBuilder();            }        }        List ts = new ArrayList<>(set);        Collections.sort(ts); //排序        System.out.println("结果数:"+ts.size());        System.out.println(ts.toString().replace("[","")                .replace("]","")                .replace(","," "));    }    /**     * 计算笛卡尔积运算去重后个数     * @param bound     * @return     */    public static long boundCount(int bound){        int sum=1;        for (int i = 1; i <= bound; i++) {           sum*=i;        }        return sum;    }}

Mark一下 java开源博客系统solo

https://solo.b3log.org/

mongodb studio 3t 破解无限试用脚本

编写一个bat或cmd文件,内容如下:@echo offECHO 重置Studio 3T的使用日期......FOR /f "tokens=1,2,* " %%i IN ('reg query "HKEY_CURRENT_USER\Software\JavaSoft\Prefs\3t\mongochef\enterprise" ^| find /V "installation" ^| find /V "HKEY"') DO ECHO yes | reg add "HKEY_CURRENT_USER\Software\JavaSoft\Prefs\3t\mongochef\enterprise" /v %%i /t REG_SZ /d ""ECHO 重置完成, 按任意键退出......pause>nulexit运行即可破解试用,另外可以加到开机启动运行

IDEA如何进行左右分屏显示代码

做几天代码重构,将A框架代码写成B框架,这就要打开两个窗口项目吧,如何让两个项目窗口各占屏幕一半呢?首先我是Windows10系统,介绍下强大快键键。点击其中一个idea窗口按 Windows键+←左箭头键(如果窗口没有半屏显示继续按←左箭头键直到半屏显示),同理点击另一个窗口按 Windows键+→右箭头键(有时左半屏成功后右半屏会显示目前开启的所有窗口供你选择,直接选择即可)。另外在idea中也可以开启两个代码文件代码左右分屏或上下分屏显示,具体操作见下图,只需将鼠标放在代码窗口的文件名上鼠标右击即可。例如下图鼠标光标放在了“DataGrid5.js”这个文件名上右击。图片来源于网络。(图片源于网络)

IDEA如何进行左右分屏显示代码

MacroDroid让旧手机成为短信中转站 转发多余卡信息

联通流量卡盛行,不少双卡用户纷纷又为自己添置的第三张卡,双卡双待已然不能满足需求了,但是因为“情怀”或者旧号码绑定很多网站的账号,虽然平时不用它打电话什么的,但是偶尔还是用来接收短信验证码之类的。那平时是不是需要随身带个备用机??那好麻烦,现在有了下面教程让你完美转发短信到你现在用的手机上。1、旧手机(装需要转发短信手机卡)下载并安装MacroDroid,选择添加宏2、触发条件选“呼叫/短信”,选“收到短信”,联系人选任何号码或者是自定义规则,设置好后选确定添加3、动作选“Messaging”>“发短信”,选择发短信的手机卡以及目标发送的手机号。消息文本选输入框右侧省略号打开下拉选择,选“传入短信”4、设置号这些后保存这些并将宏状态设置为启动5、将该应用开启自启权限,并加入白名单让其不被后台清除。接下来试试向旧手机发送信息吧,看看能不能转发到你的新手机呢!另外语音方面有需要的应该可以设置呼叫转移,可自行联系运营商咨询详情。链接:https://pan.baidu.com/s/1rMn5NhU9Pk88XDEVbi5l9g 提取码:tbet 蓝奏云下载:https://www.lanzoux.com/b709021/提取码:h1oaMacroDroid更多功能等你来挖掘。

如何让idea代码文件名tab窗口过多不自动隐藏

假如要编辑的代码窗口很多,默认tab上文件名超过一定数目会自动隐藏而只能点击下拉按钮下拉查找,这就比较麻烦了,如何让其全部显示呢?可参考下面:打开idea如图界面,点击Settings,打开Settings窗口,找到Editor Tabs(可利用搜索功能),取消勾选的 Show tabs in single row即可。

sqlite转换成MySQL迁移及一键sqlite转MySQL软件

下列是我从网上搜集并做的一个整理,若有未提及地方请指出:从sqlite数据库导入到mysql数据库实例从sqllite中导出数据文件库XX.sql的文件。导入到mysql数据库中。键入命令: source /smb/works/mysql.sql出现很多如下的错误:You have an error in your SQL syntax; check the manual thatcorresponds to your MariaDB server version for the right syntax to use near XXXXXXXXX原因是sqllite与mysql语句有很大的区别:左边为MYSQL、右边为SQLite1、启动事务Mysql 为start transactionSqlite 为 begin transaction2、提交事务Mysql 为commitSqlite 为commit transaction因此需要移除所有的 [BEGIN TRANSACTION] [COMMIT] 以及 任何包含 [sqlite_sequence] 的(整)行3 创建表Mysql的库名、表名、列明等都不需要使用[ ]sqlite 所有的名称都需要增加[ ]4、数据类型sqlite的数据类型mysql都支持。但是sqlite中定义了范围在mysql中导入会报错。只有varchar需要定义范围。5、冲突解决SQLite 的 ONCONFLICT子句不是独立的SQL命令。这是一条可以出现在许多其他SQL命令中的非标准的子句。在Mysql中不支持。6、引号将 ["] 改为 [`]也可以移除全部的 ["] ,但是如果有一些函数名作为字段名(e.g. regexp)时将会遇到错误需要注意一些默认为 ["] ,其作用不在字段上的,不应被替换而应当被保留7、将所有 [autoincrement] 改为 [auto_increment]8、将所有 ['f'] 改为 ['0'] 并将所有 ['t'] 改为 ['1']或者['False']改为['0']及['True']改为['1']9、text字段不能设置unipue,需改为varchar(255)10、注意sqlite是不区分类型的,所以有些整形字段和text字段要修改配合mysql。11、默认设为CURRENT_TIMESTAMP的字段类型一定为TIMESTAMP。另外还有其他可能不同的字段类型在导入sql报错时候可以百度解决将修改完的sql文件保存,然后通过工具导入到mysql中即可。参考原文:https://www.2cto.com/database/201604/501991.html          https://blog.csdn.net/duomoke/article/details/48246229当然最后来个最简单sqlite转MySQL方法,可以使用sqliteToMysql软件一键转换,只需要选择原db地址及目标MySQL地址即可,下载链接如下(有内购 不过可以免费试用):链接:https://pan.baidu.com/s/18mEN4JfHffseYf9N3GCeyA 提取码:9vv9