mysql 索引查询问题
我创建了一个people表字段如下
CREATE TABLE People(
last_name varchar(50) not null;//
first_name varchar(50) not null;
dob date not null;
gender enum('m','f') not null;
key(last_name,first_name,dob)
)
我对last_name,first_name,dob建了组合索引
问题1:查询姓在Allen和Barrymore之间所有人的查询语句怎么写。
问题2:查询所有姓为Allen,并且名字是字母K开头所有人的查询语句怎么写。
要求查询语句不能破坏索引。。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
查詢姓在 Allen Barrymore 我的理解是
Allen
Al%
Am%
An%
...
Barrymord
Barrymore
這些所有符合的記錄
如果是這樣 SQL 就有點無力了.
select * from people where last_name='Allen' and first_name like 'K%'
首先哈,看不懂你为什么这么设计数据表,
dob
字段,是什么信息呢。。然后存在姓
,名
还有dob
字段一起查询的需求吗? 建立一个联合索引 。还有! 提问题整洁点啊,你写的好乱开始回答:
问题一之间的所有人是怎么区分的呢? 我这里姑且按照字母表中的排序,那么
Allez
就是在Allen
和Barrymore
之间的。我的想法是先以LIKE 'A%'
和LIKE 'B%'
分别作为条件进行查询出所有满足条件的记录,然后根据给定的两个姓氏进行与查询出来的结果进行判断。这样判断的逻辑写在代码中而不是体现在sql语句中
问题二
RunSN
的回答就是对的啦