首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类似mysql查询顺序的搜索词

类似mysql查询顺序的搜索词
EN

Stack Overflow用户
提问于 2013-12-02 12:42:43
回答 3查看 104关注 0票数 0

我有两张桌子

代码语言:javascript
复制
create table crm_location_site (loc_name varchar(100),loc_id int(11) );
insert into crm_location_site values 
('Dubai Marina',11),
('Marina Residance',12),
('Jumera Marina',13)
create table crm_subloc (sub_sub_loc varchar(100),sub_loc_id int(11) );
insert into crm_subloc values 
('Ora Marina',11),
('Grand Ora Marina',12)

这是我的查询

代码语言:javascript
复制
SELECT loc_id as id,loc_name as name,'loc' as tbl 
FROM crm_location_site
WHERE TRIM(loc_name) LIKE '%M%' 
UNION
SELECT sub_loc_id as id,sub_sub_loc as name,'subloc' as tbl 
FROM crm_subloc
WHERE TRIM(sub_sub_loc) LIKE '%M%'

这个查询给了我

代码语言:javascript
复制
Dubai Marina
Marina Residance
Jumera marina

我想表现得与从顶端开始相匹配。

就像这样

代码语言:javascript
复制
Marina Residance
Dubai Marina
Jumera marina

这里是一个简单的小提琴小提琴

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-02 12:58:20

像这样吗?

代码语言:javascript
复制
SELECT *
FROM
(
    SELECT loc_id as id,loc_name as name,'loc' as tbl 
    FROM crm_location_site
    WHERE TRIM(loc_name) LIKE '%M%' 
    UNION
    SELECT sub_loc_id as id,sub_sub_loc as name,'subloc' as tbl 
    FROM crm_subloc
    WHERE TRIM(sub_sub_loc) LIKE '%M%'
) x
ORDER BY POSITION('M' in name);

仅供参考

按名称排序,重复次数最多的

代码语言:javascript
复制
ORDER BY (LENGTH(name) - LENGTH(REPLACE('M', '', name))) / LENGTH('M') DESC;
票数 2
EN

Stack Overflow用户

发布于 2013-12-02 12:55:16

类似这样的东西

代码语言:javascript
复制
|ID |   NAME             |TBL|
|12 |   Marina Residance |loc|
|11 |   Dubai Marina     |loc|
|13 |   Jumera Marina    |  loc|
|11 |   Ora Marina       |subloc|
|12 |   Grand Ora Marina |subloc|
代码语言:javascript
复制
SELECT loc_id AS id,loc_name AS name,'loc' AS tbl
FROM crm_location_site
WHERE TRIM(loc_name) LIKE 'M%'
UNION 
SELECT sub_loc_id AS id,sub_sub_loc AS name,'subloc' AS tbl
FROM crm_subloc
WHERE TRIM(sub_sub_loc) LIKE 'M%'
UNION  
SELECT loc_id AS id,loc_name AS name,'loc' AS tbl
FROM crm_location_site
WHERE TRIM(loc_name) LIKE '%M%'
UNION 
SELECT sub_loc_id AS id,sub_sub_loc AS name,'subloc' AS tbl
FROM crm_subloc
WHERE TRIM(sub_sub_loc) LIKE '%M%'

这里的琴

票数 0
EN

Stack Overflow用户

发布于 2013-12-02 13:04:09

http://sqlfiddle.com/#!2/ad8331/11

代码语言:javascript
复制
SELECT loc_id as id,loc_name as name,'loc' as tbl 
FROM crm_location_site
WHERE TRIM(loc_name) LIKE '%M%' 
UNION
SELECT sub_loc_id as id,sub_sub_loc as name,'subloc' as tbl 
FROM crm_subloc
WHERE TRIM(sub_sub_loc) LIKE '%M%'
ORDER BY POSITION('M' in name)

http://sqlfiddle.com/#!2/ad8331/14

代码语言:javascript
复制
SELECT loc_id as id,loc_name as name,'loc' as tbl 
FROM crm_location_site
WHERE TRIM(loc_name) LIKE '%M%' 
UNION
SELECT sub_loc_id as id,sub_sub_loc as name,'subloc' as tbl 
FROM crm_subloc
WHERE TRIM(sub_sub_loc) LIKE '%M%'
ORDER BY IF (name LIKE 'M%', 0, 1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20328657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档