表如下:
1 赠品 2 礼品 3 姑娘
如果我用以下 sql 直接在终端上敲 select * from table where name not like '%赠品%' 结果会返回: id 为 2 和 3 的记录。
目前的需求是:
我的这个 sql 不直接写在程序里,而是写在文本文件中。 文本文件是 vim 写的,编码格式是 utf-8 的,这样在程序读这个文本文件的时候,“赠品”这两个中文词肯定会出错。读出来运行 sql 肯定出来的也是这三条记录,没有达到过滤的目的。
我想要的结果:
1.不更改 vim 编码环境,不然后期维护 sql 很麻烦。因为数据库中,需要用中文排除的记录比较多。 2.我还是想用 sql 直接写。想了下,数据库编码是 gbk 的,如果我把“赠品”这两个字的用 gbk 编码后,转换成 16 进制的,应该是可行的。可是在 google 查过之后,还是没有达到预期效果。 google 的解决方法是: f9 c6 b7 select * from table where name not like '%'+CHAR(0xd4)+CHAR(0xf9)+CHAR(0xc6)+CHAR(0xb7) +'%'
希望得到帮助!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.