GBase 8a MPP Cluster 产品手册 5 数据库管理指南 文档版本953(2022-09-15) 南大通用数据技术股份有限公司 926 对设置了全文索引的列内容进行快速匹配。 查询语法: SELECT query_column FROM table_name WHERE CONTAINS (column_name, Query Content[, score_flag]) 表5- 45 参数说明 参数名称 说 明 query_column 需要显示的查询结果列。 table_name 表名。 column_name 查询列,也即创建了全文索引的列名,不支持多列查询。 Query Content 需要查找的内容,为字符型,需要使用'...'引用查询内容。内 容支持文本查询、逻辑运算查询表达式、NEAR 函数等。 内容支持的最大长度为255。 score_flag SCORE 标号,可选项,如不填写,则表示不输出评估值, 应 与SCORE 函数一起使用。 说明 当一条查询语句中含有多个contains 函数条件时,score_flag 参数值应互 不相同,否则会报语法错误信息: Incorrect arguments to CONTAINS FUNCTION - SCORE FLAG COLLISION。 示例 示例1:查询有多少条短信包含“南大通用”这4 个字符。 gbase> SELECT COUNT(*) FROM sms WHERE contains(MB_Text, '南大通 用'); +----------+ | COUNT(*) | +----------+ | 1 | +----------+ 1 row in set
GBase 8a MPP Cluster 产品手册 5 数据库管理指南 文档版本953(2022-09-15) 南大通用数据技术股份有限公司 927 gbase> SELECT COUNT(*) FROM sms WHERE contains(MB_Text, '南大通 用', 0); +----------+ | COUNT(*) | +----------+ | 1 | +----------+ 1 row in set 示例2:查询包含“南开”的短信并且按照no 倒排序。 gbase> SELECT MB_No AS no,MB_Text FROM sms WHERE contains(MB_Text, '"南大"',1) ORDER BY no DESC; +-------------+----------------------------------------------------------------------------------- -------------------------------------------------+ | no | MB_Text | +-------------+----------------------------------------------------------------------------------- -------------------------------------------------+ | 13323315181 | 南大通用数据技术股份有限公司地址:天津华苑产业区海泰 发展六道6 号海泰绿色产业基地J 座(300384) | | 13023315123 | 晚上去南大上英语课,在南大主楼115 房间 | | 13023315123 | 南大开设java 编程培训班,每周五晚上7:00-9:00 上课 | +-------------+----------------------------------------------------------------------------------- -------------------------------------------------+ 3 rows in set 示例3: contains 函数用于where 条件中有效, 不支持在having 条件中搜索, 即在 having 条件中无效。 gbase> SELECT MB_TEXT FROM sms WHERE contains(MB_Text, '南大'); +--------------------------------------------------------+ | MB_Text | +--------------------------------------------------------+ | 南大开设java 编程培训班,每周五晚上7:00-9:00 上课 | | 晚上去南大上英语课,在南大主楼115 房间 | | 周末去天津博物馆参观,在南开区南门外大街公交车站集合 | | 南大通用数据技术股份有限公司地址:... | +--------------------------------------------------------+ 4 rows in set (Elapsed: 00:00:00.02) gbase> SELECT MB_TEXT FROM sms GROUP BY MB_TEXT having
GBase 8a MPP Cluster 产品手册 5 数据库管理指南 文档版本953(2022-09-15) 南大通用数据技术股份有限公司 928 contains(MB_Text, '南大'); ERROR 1149 (42000): contains function can ONLY in where clause and on clause 注意 Contains 函数只能用在Where 子句中,如果包含在其他类型子句则报告 错误: gbase> SELECT contains(a ,'通用') FROM t WHERE contains(a ,' 中国') AND score(0) >10; ERROR 1149 (42000): contains function can ONLY in WHERE clause