搜索条件类似于一般的高级搜索,不过不同于一般的高级搜索的是会在条件后面给一个权值
比如 A字段条件为:中国 我赋值50
B字段条件为:湖南 我赋值30
C字段条件为:怀化 我赋值20当某条记录 ABC三个字段 都满足搜索条件的时候 就是100 排第一
只满足A字段 就是50 排后面 这种的如表中记录为
A B C
美国 密西西比州 没文化
中国 湖北 武汉
中国 湖南 长沙
中国 湖南 怀化
中国 日本 怀化那么查询结果为;
A B C
中国 湖南 怀化 ( 计算值为:100)
中国 湖南 长沙 ( 计算值为:80)
中国 日本 怀化 (计算值为:70)
美国 密西西比州 没文化 ( 计算值为:0)这种查询能用SQL或者存储过程查询出来么?或者用程序实现也行,给个实现逻辑 谢谢各位大神了
比如 A字段条件为:中国 我赋值50
B字段条件为:湖南 我赋值30
C字段条件为:怀化 我赋值20当某条记录 ABC三个字段 都满足搜索条件的时候 就是100 排第一
只满足A字段 就是50 排后面 这种的如表中记录为
A B C
美国 密西西比州 没文化
中国 湖北 武汉
中国 湖南 长沙
中国 湖南 怀化
中国 日本 怀化那么查询结果为;
A B C
中国 湖南 怀化 ( 计算值为:100)
中国 湖南 长沙 ( 计算值为:80)
中国 日本 怀化 (计算值为:70)
美国 密西西比州 没文化 ( 计算值为:0)这种查询能用SQL或者存储过程查询出来么?或者用程序实现也行,给个实现逻辑 谢谢各位大神了
select *,if(instr(a,'中国')>0,50,0)+
if(instr(b,'湖南')>0,30,0)+
if(instr(c,'怀化')>0,50,0) as pm from tt) a order by pm