+ -
当前位置:首页 → 问答吧 → 查询显示

查询显示

时间:2011-11-15

来源:互联网

请问各位大虾
有没有这样的sql查询语句
比如说现在有张表:
id name sex
1 zhongsnajiushihaoshua 22
然后根据“name” 模糊查找“a”查询出来是这样的:
id name sex
1 snaji 22
也就是说显示“name”这行的时候只显示“a”前后两个字符,或者其他字符为省略号代替

作者: qwrsfsdsf   发布时间: 2011-11-15

可以,首先使用LIKE来模糊匹配,然后将查询到的结果用字符串处理函数处理一下就okay了。
代码参考如下:
SQL code

SELECT SUBSTR(NAME,INSTR(NAME, 'a', 1, 1)- 2, INSTR(NAME, 'a', 1, 1)+ 2)
FROM t1 
WHERE NAME LIKE '%__a__%';



where条件筛选满足条件的记录,字符a前后至少有2个字符
substr()函数,取子串。
instr()函数,返回name中字符a第一次出现的位置,+2,-2确定子串取的位置。

作者: LuiseRADL   发布时间: 2011-11-15

SQL code
select id,regexp_substr(name,'((..)?|(.)?)a((..)?|(.)?)') name,sex from table1 
where name like '%a%'

作者: tx2730   发布时间: 2011-11-15