在一个表table1 中有一个字段是string类型的(在hive中),我想查出这个string中每个字符都相等的那条数据,
比如这个字段的内容是‘aaaaaaaaaaaaaa’这样的。有什么函数么
select * from table1 where REPLACE(字段名,SUBSTR(字段名,1,1),"") = "";
查询思路:查询条件设定为,取字段第一个字符,然后吧查询字段内该字符全部替换为"",那么最后为空串的满足条件
CREATE TABLE #test(
NAME varchar(10),
NUM varchar(10),
TEL varchar(10)
);
INSERT INTO #test VALUES('张三', '01', '11111111');
INSERT INTO #test VALUES('李四', '02', '22222233');
INSERT INTO #test VALUES('王五', '03', '44444444');
SELECT
*
FROM
#test t
WHERE
REPLICATE( LEFT(TEL, 1), LEN(TEL)) = TEL;
查询结果:
NAME NUM TEL
张三 01 11111111
王五 03 44444444
(2 行受影响)
注:
LEFT(TEL, 1) 意思是 获取 TEL 的左边的第一个字母.
LEN(TEL) 是获取 TEL 字符串的长度.
REPLICATE( LEFT(TEL, 1), LEN(TEL)) 是重复 TEL 的左边的第一个字母. 长度为TEL 字符串的长度.
REPLICATE( LEFT(TEL, 1), LEN(TEL)) = TEL 就是用第一个字符,重复了 TEL 的长度以后, 和 TEL 一样, 说明这个 TEL 全部只使用了一个字符。
表达的意思不是很明白,如果只是要查出表中某个字段是aaaaa的话 那直接 select * from table where 表字段=‘aaaaaa’
SELECT column FROM table WHERE column LIKE ';pattern';”
比如查是否有pangyiguang
mysql有个函数:FIND_IN_SET
SELECT FIND_IN_SET('pangyiguang','94pangyiguang88');
where name like "%string%"
这么写就可以了,就可以查出来name字段中包含了string的所有数据
执行查询语句:SELECT column FROM table WHERE column LIKE ';pattern';”