多列检索求助:含至少2个关键词的SQL查询实现方案
正确的SQL查询语句实现方案
你的查询语句存在两个关键问题:
- 列名拼写错误:表结构里的课程列是
Course,但你写的是Courses,数据库无法识别该列导致查询失效。 - 数据与关键词的拼写差异:表中第二行的Location值是
Seatlle(多了一个字母t),而你的检索关键词是Seattle,拼写不一致会导致匹配失败。
修正后的基础查询语句
如果是关键词拼写失误,统一为数据中的Seatlle,可以用以下语句:
SELECT * FROM courses_data a WHERE CONCAT_WS(' ', a.Course, a.Location) LIKE '%Sertigo Seatlle%';
更灵活的匹配方案
如果希望兼容关键词的拼写(比如允许Seattle匹配数据里的Seatlle),或者支持关键词顺序调换,建议拆分条件分别匹配两列:
SELECT * FROM courses_data a WHERE a.Course LIKE '%Sertigo%' AND a.Location LIKE '%Seattle%';
内容的提问来源于stack exchange,提问作者Antonio
相关产品推荐
相关产品推荐

