GBase UP 产品手册 5 数据库管理指南 文档版本04(2021-04-21) 南大通用数据技术股份有限公司 941 示例 示例1:查询有多少条短信包含“南大通用”这4 个字。 gbase> SELECT COUNT(*) FROM sms WHERE contains(MB_Text, '南大通用'); +----------+ | COUNT(*) | +----------+ | 1 | +----------+ 1 row in set
gbase> SELECT COUNT(*) FROM sms WHERE contains(MB_Text, '南大通用', 0); +----------+ | COUNT(*) | +----------+ | 1 | +----------+ 1 row in set 示例2:查询包含南开的短信并且按照score 分值倒排序。 gbase> SELECT score(1) AS score,MB_Text FROM sms WHERE contains(MB_Text, '南开 ',1) ORDER BY score DESC; +-------+------------------------------------------------------+ | score | MB_Text | +-------+------------------------------------------------------+ | 1537 | 周末去天津博物馆参观,在南开区南门外大街公交车站集合 | | 1533 | 南大开设java 编程培训班,每周五晚上7:00-9:00 上课 | +-------+------------------------------------------------------+ 2 row in set 说明 contains 函数用于where 条件中有效,不支持在having 条件中搜索,即在having 条件 中无效。 示例3:举例如下: gbase> SELECT MB_TEXT FROM sms WHERE contains(MB_Text, '南大'); +--------------------------------------------------------+ | MB_Text | +--------------------------------------------------------+ | 南大开设java 编程培训班,每周五晚上7:00-9:00 上课 | | 晚上去南大上英语课,在南大主楼115 房间 | | 周末去天津博物馆参观,在南开区南门外大街公交车站集合 |
GBase UP 产品手册 5 数据库管理指南 文档版本04(2021-04-21) 南大通用数据技术股份有限公司 942 | 南大通用数据技术股份有限公司地址:... | +--------------------------------------------------------+ 4 rows in set (Elapsed: 00:00:00.02)
gbase> SELECT MB_TEXT FROM sms GROUP BY MB_TEXT having contains(MB_Text, '南大 '); +---------------------------------------------------------------+ | MB_Text | +---------------------------------------------------------------+ | 南大开设java 编程培训班,每周五晚上7:00-9:00 上课 | | 天津大学开设考研培训班,学期3 个月,每周六、日上课,欢迎报名 | | 本小学为6 到12 岁儿童开办语文、数学和英语培训班 | | 周末去天津博物馆参观,在南开区南门外大街公交车站集合 | | 明天去公司办公柜里查找合同文件、档案和报销凭证。 | | 晚上去南大上英语课,在南大主楼115 房间 | | 本公司办理各种文*凭、证/件,绝对保真,联系电话:022-30088200。| | 周六上午9 点去天津水上公园,在东门集合,对着天津天塔 | | 南大通用数据技术股份有限公司地址:... | +---------------------------------------------------------------+ 9 rows in set 从上面例子可以看出,contains 函数并没有起作用,包含南大和不包含南大的 内容都搜索出来了。 Contains 函数只能用在Where 子句中,如果包含在其他类型子句则报告错误: contains function can ONLY in WHERE clause 例如: gbase> SELECT contains(a ,'通用') FROM t WHERE contains(a ,'中国') AND score(0) >10; ERROR 1149 (42000): contains function can ONLY in WHERE clause