mysql 匹配 ,我想查出和a相等或者以a开头且长度为2的所有单词该怎么办?

zizi945 2009-06-10 05:12:29
mysql 匹配 ,我想查出和a相等或者以a开头且长度为2的所有单词该怎么办?
select * from Tkeywords where keyword ……
...全文
77 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2009-06-10
  • 打赏
  • 举报
回复

like 'a_';

应该不慢啊,这个方法是可以利用到索引的。如果没有索引,则 like 'a_' 的执行速度也远高于 mid(keyword,1,1)='a' and length(keywords)=2
老哥讲数据库 2009-06-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ACMAIN_CHM 的回复:]
SQL code
select * from Tkeywords where keyword like 'a_';
[/Quote]
这个方法好,但是这样查询的话会只查询出长度为2的,而仅仅以a开头的是查不出来了啊。

select * from Tkeywords where keyword like 'a_' or keyword='a';
百年树人 2009-06-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zizi945 的回复:]
6楼说的那种效率也有点慢呀,不知道有没一种效率高一点的
[/Quote]

在keywords上建索引试试
zizi945 2009-06-10
  • 打赏
  • 举报
回复
6楼说的那种效率也有点慢呀,不知道有没一种效率高一点的
百年树人 2009-06-10
  • 打赏
  • 举报
回复
select 
*
from
Tkeywords
where
keyword like 'a%'
and
length(keywords)=2
ACMAIN_CHM 2009-06-10
  • 打赏
  • 举报
回复

mid(keyword,1,1)='a' 这种效率比较差。建议直接用 like 'a_'; 比较清晰明了。
ACMAIN_CHM 2009-06-10
  • 打赏
  • 举报
回复

select * from Tkeywords where keyword like 'a_';


WWWWA 2009-06-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zizi945 的回复:]
mid(keyword,1,1)='a'这是什么意思
[/Quote]

取keyword的第一个字符,从第一个字符开始,取一个字符
select * from Tkeywords where (mid(keyword,1,1)='a' and length(keywords)=2) or mid(keyword,1,1)='a'
zizi945 2009-06-10
  • 打赏
  • 举报
回复
我试了,只能查出长度为2 的,
zizi945 2009-06-10
  • 打赏
  • 举报
回复
mid(keyword,1,1)='a'这是什么意思
WWWWA 2009-06-10
  • 打赏
  • 举报
回复
select * from Tkeywords where mid(keyword,1,1)='a' and length(keywords)=2

57,064

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧